Code Monkey home page Code Monkey logo

mapnik-omnivore's Introduction

mapnik-omnivore

Node module that returns metadata of spatial files. Version format follows Semantic Version

Build Status Coverage Status

Currently supports the following file types:

  • geojson/topojson
  • .kml
  • .gpx
  • .tif
  • .vrt : raster files listed in the VRT file must be in the same directory as the VRT file
  • .csv : must be valid geo CSV, and can be in the form of .csv, .txt, or .tsv
  • .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

Example

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' }

Raster files will include a raster object:

 metadata:
{ filesize: 1494,
  projection: '+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs',
  raster: 
   { pixelSize: [ 7.502071930146189, 7.502071930145942 ],
     bandCount: 1,
     bands: [ [Object] ],
     nodata: null,
     origin: [ -1134675.2952829634, 2485710.4658232867 ],
     width: 984,
     height: 804,
     units: { linear: [Object], angular: [Object] } },
  filename: 'sample',
  center: [ -110.32476292309875, 44.56502238336985 ],
  extent: 
   [ -110.3650933429331,
     44.53327824851143,
     -110.28443250326441,
     44.596766518228264 ],
  minzoom: 0,
  maxzoom: 13,
  dstype: 'gdal',
  filetype: '.vrt',
  layers: [ 'sample' ] }

Install

With npm:

npm install mapnik-omnivore

Run node runModule.js from the root to try it out.

Tests

npm test

mapnik-omnivore's People

Contributors

bdon avatar brianreavis avatar tmcw avatar yhahn avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.