Cell & Shape

100% client-side · your geometries never leave your browser

Universal Geometry Inspector — paste WKT, WKB, GeoJSON, polyline, geohash, H3, S2

Drop in any geospatial geometry and instantly see what it is: the format is auto-detected, the geometry is validated (with one-click fixes), converted to every other format, and drawn on a map. It all happens 100% in your browser — your geometries are never uploaded, logged, or sent to any server.

Supported formats

One paste box, 12 encodings. Auto-detection ranks the likely formats (a hex string could be WKB or a geohash), and you can always override the guess.

GeoJSON
RFC 7946 JSON — the lingua franca of web maps (Leaflet, Mapbox GL, OpenLayers) and GeoJSON APIs.
WKT
Well-Known Text — the human-readable OGC form, e.g. POLYGON((…)); what PostGIS ST_AsText returns.
EWKT
Extended WKT — WKT with an SRID prefix, e.g. SRID=4326;POINT(…); PostGIS’s native text output.
WKB
Well-Known Binary — compact hex/base64 bytes that spatial databases store and exchange.
EWKB
Extended WKB — WKB carrying an embedded SRID, as emitted by PostGIS ST_AsEWKB.
TWKB
Tiny WKB — a quantized, lossy binary designed to shrink geometry payloads on the wire.
Encoded Polyline (precision 5)
Google Encoded Polyline, precision 5 — the squiggly route strings returned by Directions APIs.
Encoded Polyline (precision 6)
Encoded Polyline, precision 6 — the higher-resolution variant used by OSRM and Valhalla.
Geohash
Base-32 string naming a rectangular cell; each extra character zooms into a smaller cell.
H3 Cell
Uber’s hexagonal hierarchical grid index — a cell id such as 8928308280fffff.
S2 Cell
Google’s spherical quad-cell token — the grid behind geofencing and Pokémon GO wayspots.
Lat/Lng Text
A loose “lat, lng” pair copied straight from a maps app or a spreadsheet cell.

Understanding validation errors

Valid syntax does not mean valid geometry. After parsing, the inspector runs semantic checks and explains each problem in plain language — most with an auto-fix. Here are the ones you will meet most often.

Ring not closed
A polygon ring must start and end at the same point. If the first and last coordinates differ, the ring is “open”. WKT and GeoJSON both require closed rings; the inspector can close them for you by repeating the first point.
Winding order / right-hand rule
RFC 7946 wants outer rings counter-clockwise and holes clockwise. Get it backwards and some renderers fill the outside of your polygon or drop the holes. A one-click rewind re-orients every ring correctly.
Self-intersection
An edge that crosses another edge (a “bow-tie” polygon) is invalid under the OGC Simple Features rules and breaks area, buffer, and point-in-polygon math. The inspector detects the crossings so you can redraw the offending vertices.
Latitude / longitude swapped
Everything here is longitude-then-latitude (x, y). Paste “lat, lng” by mistake and your point lands in the wrong hemisphere. When a coordinate only makes sense swapped — a longitude past ±90, say — the inspector warns and offers to swap the axes.
Antimeridian crossing
A line or polygon that spans the ±180° meridian (near Fiji, the Bering Strait, or the date line) can render as a stripe across the whole map unless it is split. The inspector flags the crossing so you can decide whether to cut the geometry at ±180°.

Doing this in code?

The inspector is handy for a quick look, but here is the same round-trip in the tools you probably already use.

PostGIS & Python one-liners

Parse WKT and read it back as GeoJSON in PostGIS:

SELECT ST_AsGeoJSON(
  ST_GeomFromText(
    'POLYGON((-87.63 41.87, -87.62 41.87, -87.62 41.88, -87.63 41.88, -87.63 41.87))',
    4326
  )
);

Convert WKT to GeoJSON in Python with Shapely:

from shapely import from_wkt, to_geojson
print(to_geojson(from_wkt("POINT (-87.63 41.88)")))

More single-purpose spatial tools

Every tool here runs on the same client-side engine — nothing you paste ever leaves your browser. If you have a narrower job, one of these focused pages will get you there faster.

Frequently asked questions

Is my data uploaded anywhere?
No. Every step — detection, validation, conversion, and map rendering — runs entirely in your browser with no network calls for your geometry. Shareable links store state in the URL hash fragment (the part after #), which browsers never send to a server, so even a shared link keeps your data on the client.
What is the difference between WKB and EWKB?
WKB (Well-Known Binary) encodes only the geometry. EWKB is PostGIS’s extension that also embeds a spatial reference id (SRID) in the binary, so the coordinate system travels with the bytes. Paste either as hex or base64 and the inspector detects which one it is; when you convert, the SRID is preserved for EWKB/EWKT and dropped for plain WKB/WKT.
How do I convert WKT to GeoJSON?
Paste your WKT into the box above. It is auto-detected as WKT, validated, and converted to every other format at once — including GeoJSON. Copy the GeoJSON output with one click. The same works in reverse and between any of the supported formats.
Why does my polygon fail the right-hand rule?
RFC 7946 (GeoJSON) requires a polygon’s outer ring to be wound counter-clockwise and any holes clockwise — the “right-hand rule”. Rings wound the other way still render in most tools but are technically non-conforming, so the inspector flags a winding-order warning and offers a one-click rewind to fix it.
Which coordinate order should I use — latitude or longitude first?
GeoJSON, WKT, and WKB all use longitude-then-latitude (x, y) order. A very common bug is pasting “lat, lng” instead. When the inspector sees coordinates that look swapped — for example a longitude beyond ±90 that would be a valid latitude — it warns and offers to swap them, so you catch the mistake before it reaches your database.
Do I need an account or an API key?
No account, no API key, no sign-up. The inspector is a static page that does all the work on the client, so there is nothing to log into and nothing to pay for.