GeoJSON Simplify

Thin dense GeoJSON lines and polygons with the Douglas–Peucker algorithm at a metre-based tolerance — often 80–95% smaller with no visible change.

GeoJSON Simplify runs entirely in your browser. Your geodata is processed on your device and never uploaded.

Open the GeoJSON Viewer

About GeoJSON Simplify

GeoJSON Simplify runs the Ramer–Douglas–Peucker algorithm over every LineString, MultiLineString, Polygon and MultiPolygon in your data. The algorithm keeps a vertex only when removing it would displace the shape by more than your tolerance — expressed here in metres, with longitude properly scaled by latitude so the tolerance means the same thing in Oslo as in Singapore. GPS tracks logged every second and boundaries digitised at survey precision routinely shrink by 80 to 95% with no visible change at map scale, which is the difference between a web map that loads instantly and one that stutters. Structure survives intact: rings stay closed, polygons keep at least four positions rather than collapsing, points and properties pass through untouched, and the original object is never mutated.

Features

How to use the GeoJSON Simplify

  1. Paste GeoJSON or load the sample
  2. Set the tolerance — 5–20 m for street-level, 100 m+ for country shapes
  3. Check the reduction stats and eyeball the output
  4. Copy the simplified GeoJSON

Example

Input

GPS running track, 4,812 points, 512 KB

Output

10 m tolerance → 214 points, 24 KB — 95.6% fewer points

Indistinguishable on a map; twenty times faster to load.

Common errors & troubleshooting

Frequently asked questions

How does the Douglas–Peucker algorithm decide which points to keep?
It draws a chord between a segment's endpoints, finds the vertex farthest from that chord, and keeps it only if its distance exceeds the tolerance — then recurses on both halves. The survivors are exactly the vertices that shape the line at your chosen scale.
What tolerance should I use for GPS tracks?
Consumer GPS wanders 3–10 m anyway, so a 10 m tolerance mostly removes noise rather than signal. Street-level display holds up to about 20 m; regional overviews tolerate 100 m or more.
Will simplification break my polygons?
The guards here prevent the classic failures: the closing point is preserved, rings that would fall below four positions are left alone or kept as minimal valid rings, and nothing is mutated in place. Self-intersection from aggressive tolerances remains possible on convoluted shapes — inspect extreme reductions.
Why simplify in metres rather than degrees?
A degree of longitude shrinks with latitude — 111 km at the equator, 55 km at 60°N. A raw degree tolerance would simplify Scandinavian data twice as aggressively as equatorial data; scaling by cos(latitude) keeps the tolerance physically meaningful.
Does simplification lose data permanently?
Yes — removed vertices are gone from the output. Keep the original for analysis and archives, and ship the simplified copy for display. The stats panel tells you exactly what was traded.

Related tools

All ArrayKit tools