
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
geojson-precision-ts
Advanced tools
Remove meaningless precision from your GeoJSON. If your coordinates go out to 7+ digits, you are probably misrepresenting your data. Most scenarios in which GeoJSON is useful (i.e. web-related applications) do not require survey-grade precision, and a higher value is placed on a compact file size. Trimming the precision of coordinates can greatly reduce file size, while removing the appearance of fake high precision.
This fork is rewritten in typescript.
npm install geojson-precision-ts
or
yarn add geojson-precision-ts
parse(*geojson*, *precision*, *extrasPrecision*, *options*);
omit(*geojson*);
| Parameter | Type | Default | Description |
|---|---|---|---|
| geojson | GeoJSON | undefined | geojson is a valid GeoJSON object, and can be of type Point, LineString, Polygon, MultiPoint, MultiPolygon, MultiLineString, GeometryCollection, Feature, or FeatureCollection. If you are unsure whether or not your GeoJSON object is valid, you can run it through a linter such as geojsonhint. |
| precision | number | 6 | precision is a positive integer. If your specified precision value is greater than the precision of the input geometry, the output precision will be the same as the input. For example, if your input coordinates are [10.0, 20.0], and you specify a precision of 5, the output will be the same as the input. |
| extrasPrecision | number | 2 | extrasPrecision is a positive integer. If your specified extrasPrecision value is greater than the precision of the input geometry, the output precision will be the same as the input. For example, if your input coordinates are [10.0, 20.0], and you specify a precision of 5, the output will be the same as the input. |
| options | OptionsInterface |
options are bellows:
| Option | Type | Default | Description |
|---|---|---|---|
| ignorePoint | boolean | false | Skip Point |
| ignoreLineString | boolean | false | Skip LineString |
| ignorePolygon | boolean | false | Skip Polygon |
| removeDuplicates | boolean | false | Delete points at the same coordinates. |
omit() is an alias for parse(t, 0, 0, { removeDuplicates: true }), a function that removes all decimal coordinates from GeoJSON.
Tolerance corresponds to how much resolution you can spare. Higher the tolerance, lower is your geometry's resolution. Tolerance is specified in degrees. The above table applies here too. The table gives a general idea on what tolerance to use for your task. For example, if you can allow an error of 1.11km (for example while plotting a big city map) set your tolerance to 0.01.
decimal
places degrees distance
------- ------- --------
0 1 111 km
1 0.1 11.1 km
2 0.01 1.11 km
3 0.001 111 m
4 0.0001 11.1 m
5 0.00001 1.11 m
6 0.000001 11.1 cm
7 0.0000001 1.11 cm
8 0.00000001 1.11 mm
parse() functionimport { parse } from 'geojson-precision-ts';
const trimmed = parse(
{
type: 'Point',
coordinates: [18.984375, 57.32652122521709],
},
3
);
trimmed will now look like this:
{
"type": "Point",
"coordinates": [18.984, 57.326]
}
omit() functionThis is useful when you want to pin a static image by specifying pixels.
import { parse } from 'geojson-precision-ts';
const omitted = omit({
type: 'Point',
coordinates: [18.984375, 57.32652122521709],
});
omiited will now look like this:
{
"type": "Point",
"coordinates": [18, 57]
}
Geojson-precision can also be used via the command line when installed globally (using -g).
A positive integer specifying coordinate precision
A positive integer specifying extra coordinate precision for things like the z value when the coordinate is [longitude, latitude, elevation].
An input GeoJSON file
An output GeoJSON file
geojson-precision -p 4 input.json output.json
Concepts, ideas, etc borrowed to various degrees from:
MIT
Original Version by jczaplew's geojson-precision.
TypeScript version by Logue.
FAQs
Remove meaningless precision from GeoJSON.
We found that geojson-precision-ts demonstrated a healthy version release cadence and project activity because the last version was released less than 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.