: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
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"
}
};
reprojectGeoJSON(geojson, { to: 3857 });
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [13981728.04363516, 1130195.3976388907]
},
"properties": {
"name": "Dinagat Islands"
}
};
reprojectGeoJSON(geojson, { to: "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 ..." });
reprojectGeoJSON(geojson, { to: 'PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984", ...' });
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.
reprojectGeoJSON(geojson, { to: 32610, densify: 10 });
reprojectGeoJSONPlugable(geojson, { reproject, densify: 10 });
references