New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mapnik-omnivore

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mapnik-omnivore - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

test/fixtures/metadata_1week_earthquake.json

4

package.json
{
"name": "mapnik-omnivore",
"version": "1.0.1",
"version": "1.0.2",
"description": "Node module that returns metadata of spatial files.",

@@ -15,3 +15,3 @@ "main": "index.js",

"srs": "0.3.12",
"mapnik": "~1.4.2",
"mapnik": "~1.4.4",
"sphericalmercator": "1.0.2"

@@ -18,0 +18,0 @@ },

# mapnik-omnivore
Node module that returns metadata of spatial files.
Node module that returns metadata of spatial files.
[![Build Status](https://travis-ci.org/mapbox/mapnik-omnivore.svg?branch=master)](https://travis-ci.org/mapbox/mapnik-omnivore)
Currently supports the following file types:
- `.kml`
- `.gpx`
- `.geo.json`
- `.shp` (In order to set the projection, the `.prj` file must be in the same directory and have the same name as the `.shp` file)
# How to Use
```
var mapnikOmnivore = require('mapnik-omnivore'),
path = require('path');
var file = path.resolve('test/data/zip/world_merc/world_merc.shp');
mapnikOmnivore.digest(file, function(err, metadata){
if(err) return callback(err);
else {
console.log('Metadata returned!');
console.log(metadata);
}
});
```
### mapnikOmnivore.digest(filepath, callback)
- filepath `required`
- callback `(err, metadata)`
#### Example of returned `metadata`
```
metadata:
{ filesize: 428328, // size of file in bytes
projection: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over',
filename: 'world_merc',
center: [ 0, 12.048603815490733 ],
extent: [ -180, -59.47306100000001, 180, 83.57026863098147 ],
json: {
vector_layers: [ {
id: 'world_merc',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
FIPS: 'String',
ISO2: 'String',
ISO3: 'String',
UN: 'Number',
NAME: 'String',
AREA: 'Number',
POP2005: 'Number',
REGION: 'Number',
SUBREGION: 'Number',
LON: 'Number',
LAT: 'Number' }
} ]
},
minzoom: 0, // calculates the optimal minimum and
maxzoom: 5, // maximum zoom levels for the file
layers: [ 'world_merc' ],
dstype: 'shape',
filetype: '.shp' }
```
Run `node runModule.js` from the root to try it out.
## Tests
`npm test`
var mapnikOmnivore = require('./index.js'),
path = require('path');
var file = path.resolve('test/data/geojson/DC_polygon.geo.json');
var file = path.resolve('test/data/zip/world_merc/world_merc.shp');

@@ -10,4 +10,4 @@ mapnikOmnivore.digest(file, function(err, metadata){

console.log('Metadata returned!');
console.log(metadata);
console.log(metadata.json.vector_layers);
}
});

@@ -6,2 +6,7 @@ var assert = require('assert'),

datasourceProcessor = require('../lib/datasourceProcessor.js');
//json fixtures
var expectedMetadata_world_merc = JSON.parse(fs.readFileSync(path.resolve('test/fixtures/metadata_world_merc.json')));
var expectedMetadata_fells_loop = JSON.parse(fs.readFileSync(path.resolve('test/fixtures/metadata_fells_loop.json')));
var expectedMetadata_DC_polygon = JSON.parse(fs.readFileSync(path.resolve('test/fixtures/metadata_DC_polygon.json')));
var expectedMetadata_1week_earthquake = JSON.parse(fs.readFileSync(path.resolve('test/fixtures/metadata_1week_earthquake.json')));
/**

@@ -100,2 +105,3 @@ * Testing datasourceProcessor.getCenterAndExtent

});
/**

@@ -109,39 +115,12 @@ * Testing datasourceProcessor.init

var type = '.shp';
var expectedMetadata = {
filesize: 428328,
fileType: '.shp',
projection: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over',
extent: [-180, -59.47306100000001, 180, 83.57026863098147],
center: [0, 12.048603815490733],
minzoom: 0,
maxzoom: 5,
json: {
vector_layers: [{
id: 'world_merc',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
FIPS: 'String',
ISO2: 'String',
ISO3: 'String',
UN: 'Number',
NAME: 'String',
AREA: 'Number',
POP2005: 'Number',
REGION: 'Number',
SUBREGION: 'Number',
LON: 'Number',
LAT: 'Number'
}
}]
},
layers: ['world_merc'],
dstype: 'shape',
filename: 'world_merc'
};
datasourceProcessor.init(shpFile, filesize, type, function(err, metadata) {
if (err) return done(err);
assert.ok(err === null);
assert.deepEqual(expectedMetadata.toString(), metadata.toString());
try {
assert.deepEqual(metadata, expectedMetadata_world_merc);
} catch (err) {
console.log(err);
console.log("Expected mapnik-omnivore metadata has changed. Writing new metadata to file.");
fs.writeFileSync(path.resolve('test/fixtures/metadata_world_merc.json'), JSON.stringify(metadata));
}
done();

@@ -156,75 +135,12 @@ });

var type = '.kml';
var expectedMetadata = {
filesize: 1082451,
fileType: '.kml',
projection: '+init=epsg:4326',
extent: [-155.8387, 17.7682, -64.4278, 67.3132],
center: [-110.13325, 42.5407],
minzoom: 0,
maxzoom: 8,
json: {
vector_layers: [{
id: 'Magnitude_6',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}, {
id: 'Magnitude_5',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}, {
id: 'Magnitude_4',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}, {
id: 'Magnitude_3',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}, {
id: 'Magnitude_2',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}, {
id: 'Magnitude_1',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}]
},
layers: ['Magnitude 6', 'Magnitude 5', 'Magnitude 4', 'Magnitude 3', 'Magnitude 2', 'Magnitude 1'],
dstype: 'ogr',
filename: '1week_earthquake'
};
datasourceProcessor.init(kmlFile, filesize, type, function(err, metadata) {
if (err) return done(err);
assert.ok(err === null);
assert.deepEqual(expectedMetadata.toString(), metadata.toString());
try {
assert.deepEqual(metadata, expectedMetadata_1week_earthquake);
} catch (err) {
console.log(err);
console.log("Expected mapnik-omnivore metadata has changed. Writing new metadata to file.");
fs.writeFileSync(path.resolve('test/fixtures/metadata_1week_earthquake.json'), JSON.stringify(metadata));
}
done();

@@ -239,31 +155,12 @@ });

var type = '.geo.json';
var expectedMetadata = {
filesize: 367,
fileType: '.geo.json',
projection: '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs',
extent: [-77.1174, 38.7912, -76.9093, 38.9939],
center: [-77.01335, 38.89255],
minzoom: 0,
maxzoom: 6,
json: {
vector_layers: [{
id: 'OGRGeoJSON',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
kind: 'String',
name: 'String',
state: 'String'
}
}]
},
layers: ['OGRGeoJSON'],
dstype: 'ogr',
filename: 'DC_polygon'
};
datasourceProcessor.init(geoJsonFile, filesize, type, function(err, metadata) {
if (err) return done(err);
assert.ok(err === null);
assert.deepEqual(expectedMetadata.toString(), metadata.toString());
try {
assert.deepEqual(metadata, expectedMetadata_DC_polygon);
} catch (err) {
console.log(err);
console.log("Expected mapnik-omnivore metadata has changed. Writing new metadata to file.");
fs.writeFileSync(path.resolve('test/fixtures/metadata_DC_polygon.json'), JSON.stringify(metadata));
}
done();

@@ -279,85 +176,12 @@ });

var expectedLayers = ['waypoints', 'routes', 'tracks'];
var expectedMetadata = {
filesize: 36815,
fileType: '.gpx',
projection: '+init=epsg:4326',
extent: [-71.122845, 42.43095, -71.105116, 42.46711],
center: [-71.1139805, 42.44903],
minzoom: 0,
maxzoom: 16,
json: {
vector_layers: [{
id: 'waypoints',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
ele: 'Number',
time: 'Object',
magvar: 'Number',
geoidheight: 'Number',
name: 'String',
cmt: 'String',
desc: 'String',
src: 'String',
url: 'String',
urlname: 'String',
sym: 'String',
type: 'String',
fix: 'String',
sat: 'Number',
hdop: 'Number',
vdop: 'Number',
pdop: 'Number',
ageofdgpsdata: 'Number',
dgpsid: 'Number'
}
}, {
id: 'routes',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
name: 'String',
cmt: 'String',
desc: 'String',
src: 'String',
link1_href: 'String',
link1_text: 'String',
link1_type: 'String',
link2_href: 'String',
link2_text: 'String',
link2_type: 'String',
number: 'Number',
type: 'String'
}
}, {
id: 'tracks',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
name: 'String',
cmt: 'String',
desc: 'String',
src: 'String',
link1_href: 'String',
link1_text: 'String',
link1_type: 'String',
link2_href: 'String',
link2_text: 'String',
link2_type: 'String',
number: 'Number',
type: 'String'
}
}]
},
layers: ['waypoints', 'routes', 'tracks'],
dstype: 'ogr',
filename: 'fells_loop'
};
datasourceProcessor.init(gpxFile, filesize, type, function(err, metadata) {
if (err) return done(err);
assert.ok(err === null);
assert.deepEqual(expectedMetadata.toString(), metadata.toString());
try {
assert.deepEqual(metadata, expectedMetadata_fells_loop);
} catch (err) {
console.log(err);
console.log("Expected mapnik-omnivore metadata has changed. Writing new metadata to file.");
fs.writeFileSync(path.resolve('test/fixtures/metadata_fells_loop.json'), JSON.stringify(metadata));
}
done();

@@ -364,0 +188,0 @@ });

@@ -5,2 +5,7 @@ var assert = require('assert'),

mapnik_omnivore = require('../index.js');
//json fixtures
var expectedMetadata_world_merc = JSON.parse(fs.readFileSync(path.resolve('test/fixtures/metadata_world_merc.json')));
var expectedMetadata_fells_loop = JSON.parse(fs.readFileSync(path.resolve('test/fixtures/metadata_fells_loop.json')));
var expectedMetadata_DC_polygon = JSON.parse(fs.readFileSync(path.resolve('test/fixtures/metadata_DC_polygon.json')));
var expectedMetadata_1week_earthquake = JSON.parse(fs.readFileSync(path.resolve('test/fixtures/metadata_1week_earthquake.json')));
/**

@@ -12,39 +17,12 @@ * Testing mapnik-omnivore.digest

var file = path.resolve('test/data/zip/world_merc/world_merc.shp');
var expectedMetadata = {
filesize: 428328,
fileType: '.shp',
projection: '+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over',
extent: [-180, -59.47306100000001, 180, 83.57026863098147],
center: [0, 12.048603815490733],
minzoom: 0,
maxzoom: 5,
json: {
vector_layers: [{
id: 'world_merc',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
FIPS: 'String',
ISO2: 'String',
ISO3: 'String',
UN: 'Number',
NAME: 'String',
AREA: 'Number',
POP2005: 'Number',
REGION: 'Number',
SUBREGION: 'Number',
LON: 'Number',
LAT: 'Number'
}
}]
},
layers: ['world_merc'],
dstype: 'shape',
filename: 'world_merc'
};
mapnik_omnivore.digest(file, function(err, metadata) {
if (err) return done(err);
assert.ok(err === null);
assert.deepEqual(expectedMetadata.toString(), metadata.toString());
try {
assert.deepEqual(metadata, expectedMetadata_world_merc);
} catch (err) {
console.log(err);
console.log("Expected mapnik-omnivore metadata has changed. Writing new metadata to file.");
fs.writeFileSync(path.resolve('test/fixtures/metadata_world_merc.json'), JSON.stringify(metadata));
}
done();

@@ -57,75 +35,12 @@ });

var file = path.resolve('test/data/kml/1week_earthquake.kml');
var expectedMetadata = {
filesize: 1082451,
fileType: '.kml',
projection: '+init=epsg:4326',
extent: [-155.8387, 17.7682, -64.4278, 67.3132],
center: [-110.13325, 42.5407],
minzoom: 0,
maxzoom: 8,
json: {
vector_layers: [{
id: 'Magnitude_6',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}, {
id: 'Magnitude_5',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}, {
id: 'Magnitude_4',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}, {
id: 'Magnitude_3',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}, {
id: 'Magnitude_2',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}, {
id: 'Magnitude_1',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
Name: 'String',
Description: 'String'
}
}]
},
layers: ['Magnitude 6', 'Magnitude 5', 'Magnitude 4', 'Magnitude 3', 'Magnitude 2', 'Magnitude 1'],
dstype: 'ogr',
filename: '1week_earthquake'
};
mapnik_omnivore.digest(file, function(err, metadata) {
if (err) return done(err);
assert.ok(err === null);
assert.deepEqual(expectedMetadata.toString(), metadata.toString());
try {
assert.deepEqual(metadata, expectedMetadata_1week_earthquake);
} catch (err) {
console.log(err);
console.log("Expected mapnik-omnivore metadata has changed. Writing new metadata to file.");
fs.writeFileSync(path.resolve('test/fixtures/metadata_1week_earthquake.json'), JSON.stringify(metadata));
}
done();

@@ -138,31 +53,12 @@ });

var file = path.resolve('test/data/geojson/DC_polygon.geo.json');
var expectedMetadata = {
filesize: 367,
fileType: '.geo.json',
projection: '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs',
extent: [-77.1174, 38.7912, -76.9093, 38.9939],
center: [-77.01335, 38.89255],
minzoom: 0,
maxzoom: 6,
json: {
vector_layers: [{
id: 'OGRGeoJSON',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
kind: 'String',
name: 'String',
state: 'String'
}
}]
},
layers: ['OGRGeoJSON'],
dstype: 'ogr',
filename: 'DC_polygon'
};
mapnik_omnivore.digest(file, function(err, metadata) {
if (err) return done(err);
assert.ok(err === null);
assert.deepEqual(expectedMetadata.toString(), metadata.toString());
try {
assert.deepEqual(metadata, expectedMetadata_DC_polygon);
} catch (err) {
console.log(err);
console.log("Expected mapnik-omnivore metadata has changed. Writing new metadata to file.");
fs.writeFileSync(path.resolve('test/fixtures/metadata_DC_polygon.json'), JSON.stringify(metadata));
}
done();

@@ -176,85 +72,12 @@ });

var expectedLayers = ['waypoints', 'routes', 'tracks'];
var expectedMetadata = {
filesize: 36815,
fileType: '.gpx',
projection: '+init=epsg:4326',
extent: [-71.122845, 42.43095, -71.105116, 42.46711],
center: [-71.1139805, 42.44903],
minzoom: 0,
maxzoom: 16,
json: {
vector_layers: [{
id: 'waypoints',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
ele: 'Number',
time: 'Object',
magvar: 'Number',
geoidheight: 'Number',
name: 'String',
cmt: 'String',
desc: 'String',
src: 'String',
url: 'String',
urlname: 'String',
sym: 'String',
type: 'String',
fix: 'String',
sat: 'Number',
hdop: 'Number',
vdop: 'Number',
pdop: 'Number',
ageofdgpsdata: 'Number',
dgpsid: 'Number'
}
}, {
id: 'routes',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
name: 'String',
cmt: 'String',
desc: 'String',
src: 'String',
link1_href: 'String',
link1_text: 'String',
link1_type: 'String',
link2_href: 'String',
link2_text: 'String',
link2_type: 'String',
number: 'Number',
type: 'String'
}
}, {
id: 'tracks',
description: '',
minzoom: 0,
maxzoom: 22,
fields: {
name: 'String',
cmt: 'String',
desc: 'String',
src: 'String',
link1_href: 'String',
link1_text: 'String',
link1_type: 'String',
link2_href: 'String',
link2_text: 'String',
link2_type: 'String',
number: 'Number',
type: 'String'
}
}]
},
layers: ['waypoints', 'routes', 'tracks'],
dstype: 'ogr',
filename: 'fells_loop'
};
mapnik_omnivore.digest(file, function(err, metadata) {
if (err) return done(err);
assert.ok(err === null);
assert.deepEqual(expectedMetadata.toString(), metadata.toString());
try {
assert.deepEqual(metadata, expectedMetadata_fells_loop);
} catch (err) {
console.log(err);
console.log("Expected mapnik-omnivore metadata has changed. Writing new metadata to file.");
fs.writeFileSync(path.resolve('test/fixtures/metadata_fells_loop.json'), JSON.stringify(metadata));
}
done();

@@ -261,0 +84,0 @@ });

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc