GIS Tools

Language

Made withfor the GIS community

GeoJSON Simplifier

Simplify GeoJSON geometries with an adjustable tolerance slider

Import & Export

Drop files here or click to browse

Supported formats: GeoJSON

GeoJSON

or

About Simplification Methods

Douglas-Peucker

Removes points based on perpendicular distance from the line. Fast and works well for angular features like buildings or roads.

Visvalingam-Whyatt

Removes points based on triangle area. Produces more natural-looking results for organic features like coastlines or rivers.

Higher tolerance = more simplification. Use "Prevent shape removal" to keep small features from disappearing.

What Is GeoJSON Simplification?

GeoJSON simplification reduces the number of vertices in a vector geometry while preserving its overall shape. The result is a smaller file that loads faster, renders quicker, and consumes less memory β€” at the cost of some geometric detail. The GeoJSON Simplifier on gis.tools is a free, browser-based simplification tool that uses the Ramer-Douglas-Peucker algorithm with a tolerance slider, so you can interactively trade off file size against shape fidelity and watch the result change in real time.

Simplification is one of the most important preprocessing steps for any web map. A raw shapefile of a country might have a million vertices and weigh 50 MB; a simplified version for a small inset map might have 5,000 vertices and 200 KB. The visual difference is often imperceptible at typical web map zoom levels but the performance difference is dramatic.

How the Douglas-Peucker Algorithm Works

Douglas-Peucker (also called Ramer-Douglas-Peucker) is the classical line simplification algorithm. It works recursively:

  1. Mark the first and last points of a line as kept.
  2. Find the point furthest from the straight line connecting them.
  3. If that point is closer than the tolerance, discard all intermediate points.
  4. Otherwise, mark that point as kept and recursively simplify the two halves.

The single tolerance parameter controls the maximum allowed deviation from the original line. A larger tolerance produces a coarser simplification with fewer vertices. The algorithm is O(n log n) on average, fast enough for interactive use.

Tolerance Units

Tolerance can be expressed in degrees (the native unit for WGS84 lat/lon coordinates), meters (after projecting to a metric CRS), or pixels (after projecting to screen coordinates at a target zoom level). The simplifier exposes a degrees-based tolerance for simplicity, with a helper that converts approximate metric values for guidance.

Visvalingam-Whyatt Alternative

For cartographic generalisation, the Visvalingam-Whyatt algorithm (which removes the vertex that contributes the smallest triangle of area) often produces visually better results. The simplifier offers it as an alternative mode for users who care about cartographic quality.

Practical Applications

Web Map Performance

The most common use case: shrinking a country boundary file from megabytes to kilobytes so a web page loads in under a second on mobile networks.

Mobile Applications

Offline mobile maps need compact data because storage and bandwidth are precious. Simplification is essential for any mobile GIS app.

D3.js Visualisation

D3 maps render every vertex as an SVG path command. Reducing the vertex count by 10Γ— speeds up rendering by a similar factor.

Choropleth Atlases

A statistical atlas with 100 maps benefits from a simplified base layer that loads once and renders many times.

Print Cartography

Even for high-resolution print maps, raw GPS-derived geometry is often noisier than necessary. Mild simplification cleans it up.

Boundary Generalisation

National mapping agencies routinely simplify their datasets at multiple scales. The same idea applies to any project that needs scale-dependent representations.

Email-Friendly Datasets

A 50 MB shapefile is too big for many email systems. Simplifying first lets you share the gist of the data without losing the message.

Step-by-Step Workflow in gis.tools

  1. Open the GeoJSON Simplifier page.
  2. Drag a .geojson file or paste GeoJSON text into the input area.
  3. The simplifier loads the file and reports the original vertex count.
  4. Adjust the tolerance slider β€” the preview updates in real time.
  5. Compare the original and simplified geometries side by side.
  6. Choose Douglas-Peucker or Visvalingam-Whyatt from the algorithm dropdown.
  7. Click Download Simplified GeoJSON when satisfied.

Worked Example

A designer is building a US national choropleth map for an editorial article. The original Census state boundaries GeoJSON is 2.4 MB with 86,000 vertices. They drop it into the simplifier. At a tolerance of 0.01 degrees (~1 km), the file shrinks to 380 KB with 11,000 vertices and the silhouettes still look crisp at the article's display size. They download the result and embed it in their D3 map. Page load time drops from 2.1 seconds to 0.4 seconds on a mobile connection.

They notice that adjacent state boundaries no longer perfectly align (a side effect of independent simplification per polygon). For shared boundaries to remain coincident, they re-export the data through the GeoJSON to TopoJSON Converter instead, which uses topology-preserving simplification.

Common Pitfalls and Gotchas

  • Sliver gaps between adjacent polygons β€” Simplifying each polygon independently breaks shared boundaries. Use TopoJSON or Simplify Preserving Topology instead.
  • Self-intersecting polygons β€” Aggressive simplification can fold a polygon onto itself. Run the Geometry Repair tool afterward.
  • Loss of small features β€” A small island or detail smaller than the tolerance may disappear entirely.
  • Tolerance in wrong units β€” Confusing degrees with meters can produce wildly wrong results.
  • Antimeridian artefacts β€” Simplification near 180Β° longitude can create odd loops.
  • Per-feature inconsistency β€” Different feature types may need different tolerances.
  • Loss of attribute meaning β€” Properties are preserved but the simplified geometry may not match the original attribute statistics.

Tips for Best Results

  • Start with a small tolerance and increase until you see visible degradation.
  • Compare side-by-side at the actual display size of your final map.
  • Use topology-preserving simplification when adjacent polygons must stay coincident.
  • Validate the output with the GeoJSON Validator & Fixer to catch any introduced topology errors.
  • For multi-scale maps, generate several simplification levels and serve them by zoom.
  • Document the tolerance you used so future updates can match it.
  • Combine with the Coordinate Precision Reducer for even smaller files.

Comparison with Other GIS Approaches

QGIS has a Simplify Geometries tool that uses Douglas-Peucker. Mapshaper provides interactive simplification with both Douglas-Peucker and Visvalingam in the browser. Turf.js (turf.simplify) is the canonical JavaScript library for the same algorithm. PostGIS has ST_Simplify and ST_SimplifyPreserveTopology. The browser-based gis.tools simplifier matches Mapshaper's user experience while focusing on a single tool with privacy-first processing.

Performance Considerations

Douglas-Peucker is O(n log n) on average. A million-vertex file simplifies in seconds. The browser handles up to a few hundred megabytes of GeoJSON before memory pressure becomes a problem.

Data Privacy and Browser-Based Processing

Everything happens in your browser tab. Sensitive boundary data β€” research field sites, infrastructure inventories, classified territory β€” never leaves your device.

Related GIS Concepts

Ramer-Douglas-Peucker β€” The classic line simplification algorithm, named after its independent inventors in the 1970s.

Visvalingam-Whyatt β€” An area-based alternative that often produces visually smoother results.

Topology-Preserving Simplification β€” A variant that simplifies shared edges only once, used by TopoJSON and PostGIS.

Cartographic Generalisation β€” The broader practice of adapting geographic data for different scales, of which simplification is one component.

Frequently Asked Questions

What tolerance should I use?

For world-scale maps, 0.05–0.1 degrees works well. For continental, 0.01–0.05. For city-scale, 0.0001–0.001.

Will my attributes be preserved?

Yes β€” properties are unchanged. Only the geometry coordinates are simplified.

Can I simplify points?

Point features have no vertices to simplify; the tool passes them through unchanged.

What about Visvalingam-Whyatt?

It's available as an alternative algorithm in the dropdown, recommended for cartographic use.

Related Tools on gis.tools

100% client-side processing - your data stays private and never leaves your device