CSV to GeoJSON Converter
Turns a CSV with coordinate or WKT columns into GeoJSON with GDAL's ogr2ogr.
Upload a .csv file. The worker finds the coordinate columns by name (or a WKT column), assigns WGS84 when the values are longitude/latitude, and writes a GeoJSON file. Without recognisable columns the upload is refused with an explanation.
Drag a file here to convert, or select file
Accepted: .csv · max. 50 MB
What the converter does
- Coordinates are found by column name, ignoring case: X = lon, lng, long, longitude, laenge, länge, x, easting, rechtswert, ostwert; Y = lat, latitude, breite, y, northing, hochwert, nordwert. Alternatively a WKT column named wkt, wkt_geom, geom, geometry, the_geom or geometrie.
- If the X/Y columns are named like longitude/latitude and the values lie within ±180/±90, the worker assigns WGS84 (EPSG:4326). Other coordinates (e.g. rechtswert/hochwert) get no coordinate system; the report says so.
- Comma, semicolon, tab and pipe work as separators; with semicolons, decimal commas (50,943) are read correctly.
- Files that are not valid UTF-8 are read as Windows-1252 (typical for Excel) and converted to UTF-8; the report notes it.
- A CSV without recognisable coordinate columns is rejected with a message listing the accepted column names.
- Only the coordinate columns are read as numbers; all other columns are written as text.
- Coordinates in metres (e.g. rechtswert/hochwert) get no coordinate system. A GeoJSON without crs member is read as WGS84 longitude/latitude, so for such data choose CSV to Shapefile or assign the system in your GIS.
- The report below the upload shows layers and features read and written, skipped layers with the reason, GDAL's warnings and the exact commands.
GDAL command the worker runs
lon and lat are the column names found in your file. For a WKT column the worker uses -oo GEOM_POSSIBLE_NAMES=<column> -oo KEEP_GEOM_COLUMNS=NO instead.
Tested with
| Test file | Result |
|---|---|
| CSV (comma) with id, name, lat, lon, 3 rows | 3 of 3 points, EPSG:4326 |
| CSV with semicolons and decimal commas | 2 of 2 points at the right place (6.9583/50.943) |
| Excel CSV in Windows-1252 with Breite/Länge | 2 of 2 points, umlauts correct; report: read as Windows-1252 |
| CSV with a WKT column (1 polygon, 1 point) | 1 GeoJSON with both geometries |
| CSV with rechtswert/hochwert in metres | 2 of 2 points, no crs member; report: coordinate system unknown |
Tested on 24 Sep 2026 with the worker code of this site and GDAL 3.10.3 (conda-forge build on Windows). The worker image runs the Debian build of the same GDAL version; the live worker was not part of these tests.
Limits
- Upload limit: 50 MB per file.
- GeoJSON output for coordinates in metres is not usable as WGS84; see above.
- Each GDAL step may run for up to 240 seconds; a longer run is stopped with an error message.
Frequently Asked Questions
Which column names are recognised?
X: lon, lng, long, longitude, laenge, länge, x, easting, rechtswert, ostwert. Y: lat, latitude, breite, y, northing, hochwert, nordwert. WKT: wkt, wkt_geom, geom, geometry, the_geom, geometrie. Case does not matter.
What happens to my file?
Your browser uploads it directly to the GDAL worker on Fly.io (region Frankfurt). The worker converts it in a temporary folder and deletes the folder after sending the result, or immediately if the conversion fails. Files are not stored permanently.