geodata · Browser tool
GeoData Converter
Paste or open a GeoJSON, KML, GPX or CSV file and write it back out in any of the other three, with coordinate checks along the way.
Input
CSV columns
These controls become active when the input is CSV. For other formats the coordinates come from the file structure itself.
Common header names such as lat, latitude, y, lon, lng, longitude and x are picked up on their own.
Output
Coordinate check
| Where | Latitude | Longitude | Problem |
|---|
What this does
All four of these formats store the same thing — a list of positions on the WGS 84 ellipsoid — and disagree about almost everything else. The converter reads whichever one you give it into a common structure of points, lines and polygons, then writes that structure out in the format you ask for. KML and GPX are parsed with the browser's own DOMParser; the writers are hand-built string builders, so the output is plain and predictable rather than whatever a library felt like emitting.
Latitude and longitude are written in opposite orders
This is the single most common mistake in geodata work, and it is not carelessness — the formats genuinely disagree. GeoJSON and KML write longitude first, because they follow the x-then-y convention of computer graphics. GPX, most CSV exports, every GPS receiver and the numbers you read off a map write latitude first. Paste a GeoJSON coordinate pair into a latitude-first field and your point in Paris lands in Somalia, or falls in the sea off the Horn of Africa where the null island of geodata errors sits. The check below flags any pair where latitude falls outside ±90 but would be valid as a longitude, which catches the swap whenever the point is more than 90 degrees from the meridian. Inside that band the swap is undetectable from the numbers alone, so if a point looks wrong and the coordinates are both small, try the swap toggle.
What survives the conversion and what does not
Geometry and coordinates always survive, along with a name and a description where the format has somewhere to put them. Everything else is format-specific and gets dropped: KML styles, icons, ExtendedData, NetworkLink, ground overlays, time spans and folder nesting; GPX timestamps, elevation on route points, extensions and metadata blocks; arbitrary GeoJSON properties beyond name and description. Elevation is kept when it is present on a position. GPX has no polygon type at all, so a polygon written to GPX becomes a track that follows its outer ring and the holes are lost — the output says so when it happens. CSV holds one position per row, so lines and polygons are written as one row per vertex with the feature and ring identified in their own columns. Multi-part geometries are split into one feature per part on the way in.
Precision
Coordinates are written with up to six decimal places, which is about eleven centimetres at the equator and finer than any consumer GPS. Trailing zeroes are trimmed. If your source carries more digits than that, the extra ones are dropped rather than carried through, so a round trip through this page is not byte-identical to where it started.