Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
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.
install:
$ npm install -g reproject
use:
$ echo '{"type":"Point","coordinates":[319180, 6399862]}' | reproject --use-epsg-io --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-epsg-io
or --eio
to use epsg.io to look up
any CRS definitions that aren't already known--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 reprojectionreproject 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
Installation is easy with npm:
npm install reproject
It works well in the browser with for example browserify.
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.
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);
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.
Reverses the axis order of the coordinates in the given GeoJSON, such that x becomes y and y becomes x.
FAQs
Reproject GeoJSON from one projection/CRS to another
We found that reproject demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.