Git Product home page Git Product logo

reproject's Introduction

reproject Build status NPM version

Greenkeeper badge

Transforms GeoJSON from one projection / CRS to another.

According to the latest GeoJSON spec (RFC 7946), GeoJSON coordinates should be assumed to be in WGS84, but sometimes it's useful to use other CRS anyway, and the spec actually leaves some room for this:

However, where all involved parties have a prior arrangement, alternative coordinate reference systems can be used without risk of data being misinterpreted.

Reproject lets you either explicitly specify a GeoJSON's CRS, or use the conventions from the earlier GeoJSON spec: GeoJSON 2008.

cli

install:

$ npm install -g reproject

use:

$ echo '{"type":"Point","coordinates":[319180, 6399862]}' | reproject --use-spatialreference --from=EPSG:3006 --to=EPSG:4326

Options:

  • --from=crs-name is the CRS to convert the GeoJSON from; either a name from crs-defs, or a Proj4 CRS definition string
  • --to=crs-name is the CRS to convert the GeoJSON to; either a name from crs-defs, or a Proj4 CRS definition string
  • --use-spatialreference or --sr to use spatialreference.org to look up any CRS definitions that aren't already known
  • --crs-defs=file to provide a JSON dictionary of known CRS definitions. A sample file of CRS definitions, crs-defs.json, is supplied.
  • --reverse to reverse the axis (swap x and y) before performing the reprojection

reproject can be used together with for example wellknown and geojsonio-cli:

$ echo "POINT(319180 6399862)" | wellknown | reproject --crs-defs=crs-defs.json --from=EPSG:3006 --to=EPSG:4326 | geojsonio

usage

Installation is easy with npm:

npm install reproject

It works well in the browser with for example browserify.

api

reproject(geojson, from, to, crss)

Reprojects the given GeoJSON from the CRS given in from to the CRS given in to.

The from and to arguments can either be a proj4 projection object, a string containing a CRS name, or a Proj4 CRS definition string. In the case of a CRS name, the proj4 projection instance is looked up using the crss argument. crss is assumed to be a dictionary of projection names to proj4 objects.

If from is left undefined or null, the CRS will be detected from the GeoJSON's crs property and looked up in the crss dictionary.

toWgs84(geojson, from, crss)

Shortcut equivalent to

reproject(geojson, from, proj4.WGS84, crss)

For a fully automatic "convert almost any common projection to lat/lon", try this:

var epsg = require('epsg');
toWgs84(geojson, undefined, epsg);

detectCrs(geojson, crss)

Detects the CRS defined in the given GeoJSON and returns the corresponding proj4 projection instance from crss. If no CRS is defined in the GeoJSON, or the defined CRS isn't present in crss, an error is thrown.

reverse(geojson)

Reverses the axis order of the coordinates in the given GeoJSON, such that x becomes y and y becomes x.

reproject's People

Contributors

perliedman avatar greenkeeperio-bot avatar stevage avatar ustroetz avatar greenkeeper[bot] avatar

Watchers

James Cloos 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.