GeoJSON Union Tool

Compute the union of multiple GeoJSON polygons into a single geometry.

Skip to the tool

Union dissolves multiple polygons into a single geometry, removing the shared edges. The canonical use is rolling administrative units up — combining a state's county polygons into one state polygon — but it's also how you take overlapping buffer rings and turn them into a single coverage area without double-counting.

Paste a FeatureCollection of Polygons (or MultiPolygons) on the left. The tool runs a pairwise union over every input, returning a single Polygon when the inputs share edges or overlap, or a MultiPolygon when they don't. Sliver polygons from coordinate-precision mismatch are flagged so you can snap inputs first if needed.

Below the widget: the pairwise vs. cascade-union algorithms (cascade is faster on large inputs but needs perfect topology), why turf.union sometimes returns a MultiPolygon when you expected one piece, and the precision-snapping recipe that fixes most "almost touching" inputs. For the opposite direction — splitting one polygon into many — use the clip tool.

Watch out for: floating-point coordinate precision. County-boundary shapefiles distributed by different agencies often disagree at the 7th decimal place on shared edges — close enough for visual rendering, not close enough for a topological union. The result is hairline sliver polygons along the dissolved boundary that won't be visible on the map but will skew area calculations and trip up vector-tile generators. Snap inputs to a common grid (e.g. 6-decimal precision, ~11 cm) before unioning, or run the data through TopoJSON first to compute and then merge shared arcs exactly.

What Is a Geometric Union?

The union operation combines two or more overlapping polygons into a single polygon that covers the total area of all inputs. Where polygons overlap, the shared boundary is dissolved and the combined shape is returned as one geometry.

How to Use the Union Tool

Provide GeoJSON polygons and the tool computes their union. Non-overlapping polygons are returned as a MultiPolygon. Overlapping polygons are merged into a single continuous shape. The result preserves the outer boundary while removing internal boundaries.

Common Use Cases

  • Combining adjacent administrative regions into a single boundary
  • Merging overlapping buffer zones into a unified coverage area
  • Creating a single outline from multiple overlapping parcels
  • Simplifying complex multi-part boundaries for display purposes

Compare with merge (concatenates features without spatial combination), turf.dissolve() (merges features sharing a property value), andturf.intersect() (returns only the shared area).

Try It

Union two overlapping rectangles — one around Times Square and one around Central Park. The rectangles share an overlapping strip in between:

GeoJSON{
  "type": "Feature",
  "properties": { "name": "Times Square Area" },
  "geometry": {
    "type": "Polygon",
    "coordinates": [[[-73.99, 40.75], [-73.98, 40.75], [-73.98, 40.77], [-73.99, 40.77], [-73.99, 40.75]]]
  }
}
GeoJSON{
  "type": "Feature",
  "properties": { "name": "Central Park Area" },
  "geometry": {
    "type": "Polygon",
    "coordinates": [[[-73.985, 40.76], [-73.975, 40.76], [-73.975, 40.79], [-73.985, 40.79], [-73.985, 40.76]]]
  }
}

The result is a single Polygon covering the combined area of both rectangles. The overlapping strip between 40.76 and 40.77 latitude is merged seamlessly — no internal boundary remains. On the map, you see one L-shaped polygon instead of two overlapping rectangles.

How It Works

The union tool uses Turf.js (@turf/union), which computes the boolean union of two polygon geometries. The algorithm finds all intersection points between the polygon edges, then traces the outermost boundary to produce the combined shape. When polygons do not overlap, the result is a MultiPolygon containing both shapes as separate parts. For background on GeoJSON polygon structure, see the GeoJSON specification guide.