Paste GeoJSON on the left to see it drawn on the map and checked against RFC 7946. Everything runs in your browser — your data is never uploaded anywhere.
Plenty of GeoJSON is syntactically valid JSON and still wrong as GeoJSON. This tool checks the failures that actually occur in production rather than every clause of the specification:
| Check | Why it matters |
|---|---|
| Latitude outside ±90 | Almost always means longitude and latitude are swapped |
| Longitude outside ±180 | Broken export, or degrees confused with a projected unit |
| Unclosed polygon ring | Strict parsers reject it; lenient ones silently mis-fill the shape |
| Ring shorter than 4 positions | A closed triangle needs 4 entries, not 3 |
Unrecognised type | Usually a typo, or WKT/KML mislabelled as GeoJSON |
Missing coordinates | Truncated export or a half-built object |
This is the single most common GeoJSON bug, and it deserves its own
section. RFC 7946 specifies positions as
[longitude, latitude]. Nearly every human-facing system —
Google Maps, GPS displays, Leaflet's own LatLng class —
writes them the other way round.
Swap them and one of two things happens. If your latitude exceeds 90, you
get an obvious error, which is the lucky case. If both values happen to
fall within ±90, the file parses cleanly and quietly points at the wrong
place — Barcelona at 41.40, 2.17 becomes a spot off the coast
of Somalia. Nothing errors. The map just shows the wrong ocean.
The viewer flags the first case immediately. For the second, the map itself is the test: if your shape isn't where you expect, check the order before checking anything else. Our coordinate converter displays both orderings side by side.
Point, MultiPoint, LineString,
MultiLineString, Polygon,
MultiPolygon, GeometryCollection,
Feature, and FeatureCollection all render.
Feature properties are preserved and shown when you click a shape.
A Polygon's coordinates is an array of rings.
The first is the outer boundary; every ring after it is a hole punched
through that boundary. This is how you model a zone that excludes a
courtyard, or a delivery area with a no-go block in the middle.
RFC 7946 asks for the outer ring to wind counter-clockwise and holes clockwise. Most parsers ignore winding and infer holes from position, so getting it wrong rarely breaks rendering — but it can flip the inside and outside in strict geometry engines, which is a genuinely confusing bug to chase. The area calculator subtracts holes correctly regardless of winding.
Validated GeoJSON is a static description of a shape. To make it do something you need a service that tests incoming positions against it and notifies you on a crossing. That is what Geoblip does — paste a zone in, assign a device, set the hours it should be active, and get alerted when the boundary is crossed. You can draw a new one from scratch with the geofence builder, or see how the whole flow fits together.
This tool draws the boundary. Geoblip watches it — assign a phone or GPS tracker, set the hours it should be active, and get an email or push notification the moment it crosses the line.