apply ramer-douglas-peucker line simplification to geojson features or feature collections in JS or on the CLI


Apply douglas-peucker line simplification to GeoJSON features or feature collections in JS or on the CLI. This module uses for the simplification and wraps it in a interface for easily simplifying GeoJSON.

npm install simplify-geojson -g
cat data.geojson | simplify-geojson -t 0.01

tolerance is specified by either -t or --tolerance and is a number in degrees (e.g. lat/lon distance). 1 degree is roughly equivalent to 69 miles. the default is 0.001, which is around a city block long

var simplify = require('simplify-geojson')
var simplified = simplify(geojson, tolerance)

geojson can be any of the following:

  • Feature with a LineString
  • Feature with a MultiLineString
  • Feature with a Polygon
  • Feature with a MultiPolygon
  • FeatureCollection with any of the above

All segments in any of the supported types will be simplified (including holes in polygons, for instance)

convert a CSV with lat/lon columns into geojson, then simplify that geojson, then open it in

CSV is from my GPS logger and was my bike commute this morning

npm install simplify-geojson geojsonio-cli csv2geojson -g
curl | \
  csv2geojson --lat "LATITUDE N/S" --lon "LONGITUDE E/W" --line true | \
  simplify-geojson -t 0.001 | \

simplify alaska's border outline and count the number of lines of the simplified geojson output (tweak -t to see how it affects length):

curl | \
  simplify-geojson -t 0.01 | \
  wc -l