New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

geojson-precision-ts

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

geojson-precision-ts

Remove meaningless precision from GeoJSON.

latest
Source
npmnpm
Version
1.4.0
Version published
Maintainers
1
Created
Source

geojson-precision-ts

jsdelivr CDN NPM Downloads Open in unpkg npm version Open in Gitpod Twitter Follow

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.

Installation

npm install geojson-precision-ts

or

yarn add geojson-precision-ts

Usage

parse(*geojson*, *precision*, *extrasPrecision*, *options*);
omit(*geojson*);
ParameterTypeDefaultDescription
geojsonGeoJSONundefinedgeojson 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.
precisionnumber6precision 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.
extrasPrecisionnumber2extrasPrecision 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.
optionsOptionsInterface

options are bellows:

OptionTypeDefaultDescription
ignorePointbooleanfalseSkip Point
ignoreLineStringbooleanfalseSkip LineString
ignorePolygonbooleanfalseSkip Polygon
removeDuplicatesbooleanfalseDelete 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.

How do you choose tolerance?

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

Example

parse() function

import { 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() function

This 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]
}

CLI

Geojson-precision can also be used via the command line when installed globally (using -g).

Parameters

precision (-p)

A positive integer specifying coordinate precision

extras precision (-e)

A positive integer specifying extra coordinate precision for things like the z value when the coordinate is [longitude, latitude, elevation].

input

An input GeoJSON file

output

An output GeoJSON file

Example use

geojson-precision -p 4 input.json output.json

Inspiration

Concepts, ideas, etc borrowed to various degrees from:

  • wellknown
  • LilJSON

License

MIT

Original Version by jczaplew's geojson-precision.

TypeScript version by Logue.

  • Stop mutation of original object feature by frankrowe.
  • Skip each geometry type feature by andrewharvey.
  • Remove duplicate points feature by matthewrj.

Keywords

geojson

FAQs

Package last updated on 03 Jun 2025

Did you know?

Socket

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.

Install

Related posts