reproject-geojson

0.5.0 • Public • Published

⚠️ warning. Use with caution. In most cases, you don't want to do this. Technically, you can't reproject a GeoJSON, because the GeoJSON standard only accepts 1 projection (Latitude/Longitude on a WGS 1984 Datum).

reproject-geojson

Reproject GeoJSON

features

  • Works Offline
  • Pure JavaScript
  • Cross-Platform (NodeJS or Browser)

install

npm install reproject-geojson

usage

import reprojectGeoJSON from "reproject-geojson";

const geojson = {
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [125.6, 10.1]
  },
  "properties": {
    "name": "Dinagat Islands"
  }
};

// reproject using EPSG Code
reprojectGeoJSON(geojson, { to: 3857 });
{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [13981728.04363516, 1130195.3976388907]
  },
  "properties": {
    "name": "Dinagat Islands"
  }
};

// reproject using Proj4 String
reprojectGeoJSON(geojson, { to: "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 ..." });

// reproject using Well-Known Text
reprojectGeoJSON(geojson, { to: 'PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984", ...' });

// reproject using ESRI Well-Known Text
reprojectGeoJSON(geojson, { to: 'PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984", ...' });

advanced usage

Light Pluggable Version

If you want the convenience of reproject-geojson without the overhead of the proj4-fully-loaded dependency, you can use the pluggable version of reprojectGeoJSON:

import reprojectGeoJSONPlugable from "reproject-geojson/pluggable.js";

const proj4 = require("proj4");

const reproject = proj4("EPSG:3857", "EPSG:4326").forward;
reprojectGeoJSONPlugable(geojson, { reproject });

Point Densification

If you want to densify your line segments or polygon edges before reprojection, pass in "densify" and this'll be passed to reproject-line.

// add up to 10 points to each line segment as needed
reprojectGeoJSON(geojson, { to: 32610, densify: 10 });

reprojectGeoJSONPlugable(geojson, { reproject, densify: 10 });

references

Package Sidebar

Install

npm i reproject-geojson

Weekly Downloads

3,664

Version

0.5.0

License

CC0-1.0

Unpacked Size

426 kB

Total Files

6

Last publish

Collaborators

  • danieljdufour