UNPKG

reproject-geojson

Version:
81 lines (66 loc) 2.33 kB
:warning: __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 ```bash npm install reproject-geojson ``` ## usage ```js 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](https://github.com/danieljdufour/proj4-fully-loaded) dependency, you can use the pluggable version of reprojectGeoJSON: ```js 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](https://github.com/danieljdufour/reproject-line). ```js // add up to 10 points to each line segment as needed reprojectGeoJSON(geojson, { to: 32610, densify: 10 }); reprojectGeoJSONPlugable(geojson, { reproject, densify: 10 }); ``` # references - https://geojson.org/ - https://datatracker.ietf.org/doc/html/rfc7946