GeoJSON Is Nested; CSV Is Flat
GeoJSON stores geography as Geometry objects and attributes as properties on each Feature. CSV needs one row per record and one column per attribute — plus explicit longitude/latitude (or WKT) columns for points. Converting GeoJSON to CSV unlocks Excel filters, CRM uploads, and BI joins for teams in the US, UK, Canada, Australia, and Europe who receive .geojson from web maps, OpenStreetMap extracts, or internal GIS exports.
What Converts Cleanly
Point features are the sweet spot for tabular CSV.
| Geometry | CSV reality |
|---|---|
| Point | One lon/lat (or lat/lon) pair per row — ideal |
| MultiPoint | Often one row per point, or a single row with complex encoding |
| LineString / Polygon | Needs WKT/WKB column or many vertex rows — not a simple attribute table |
| GeometryCollection | Usually preprocess in GIS before CSV |
| Feature properties (strings, numbers, booleans) | Become CSV columns |
| Nested property objects/arrays | Must flatten or JSON-stringify |
Step-by-Step: GeoJSON → CSV
Browser path for analyst handoffs.
- Validate the file is a FeatureCollection (or a single Feature) with UTF-8 text.
- Open GeoJSON to CSV on Convert CSV Online.
- Preview rows: confirm property names became headers.
- Check longitude/latitude column order for your destination (see below).
- Download CSV; spot-fix a known city coordinate.
- Optional: convert CSV to Excel for stakeholders, or CSV to KML for another map tool.
- For pipelines, keep the original GeoJSON as the geometric source of truth.
Example GeoJSON point feature
Coordinates are [longitude, latitude] per RFC 7946.
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [-73.9857, 40.7484] },
"properties": { "name": "Empire State", "city": "New York", "country": "US" }
}
]
}Example CSV output
RFC 7946 order is longitude, latitude — many CSV tools label lon, lat:
name,city,country,longitude,latitude
Empire State,New York,US,-73.9857,40.7484Longitude, Latitude, and the Excel Swap Bug
GeoJSON coordinates are [longitude, latitude] per RFC 7946. Many US CSV templates and teaching materials use lat,lon order instead.
- Plotting lon/lat reversed puts New York in the Indian Ocean.
- Document column headers clearly: longitude then latitude, or lat then lon — pick one and stick to it.
- UK/EU national projections (BNG, etc.) are not lon/lat — reproject in GIS before assuming WGS84 CSV.
- Australian GDA and US State Plane exports need the same care: know the CRS before flattening.
| Place | Approx longitude | Approx latitude |
|---|---|---|
| New York City | -74 | 40.7 |
| London | -0.12 | 51.5 |
| Sydney | 151.2 | -33.9 |
| Toronto | -79.4 | 43.7 |
| Berlin | 13.4 | 52.5 |
Flattening Properties
CSV cannot nest.
- Simple keys (name, id, category) become columns.
- Nested objects (address.city) become address.city or address_city.
- Arrays (tags:["a","b"]) become pipe-joined text or a JSON string in one cell.
- Null properties should become empty cells, not the text “null”, unless your importer wants that.
- Inconsistent properties across features create sparse columns — that is normal.
Python: points to CSV
Skips non-point geometries; extend as needed for your dataset.
import csv, json
with open("places.geojson", encoding="utf-8") as f:
data = json.load(f)
rows = []
for feat in data["features"]:
if feat.get("geometry", {}).get("type") != "Point":
continue
lon, lat = feat["geometry"]["coordinates"][:2]
props = feat.get("properties") or {}
rows.append({**props, "longitude": lon, "latitude": lat})
fieldnames = sorted({k for r in rows for k in r})
with open("places.csv", "w", newline="", encoding="utf-8") as out:
writer = csv.DictWriter(out, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(rows)Polygons and Lines: When CSV Is the Wrong Default
For boundaries and routes, prefer keeping GeoJSON/Shapefile/GeoPackage — or add a WKT column.
- Exploding polygon rings to one CSV row per vertex is possible but painful for Excel users.
- Use point-on-surface or centroid columns only when a single pin is an acceptable summary.
- Round-trip risk: CSV → GeoJSON may not restore full topology if you only exported centroids.
id,name,wkt
1,Central Park,"POLYGON((-73.98 40.80, -73.95 40.80, -73.95 40.76, -73.98 40.76, -73.98 40.80))"KML, CSV, and GeoJSON Together
Google Earth and many CMS tools speak KML; modern web maps speak GeoJSON; ops teams speak CSV.
- KML to CSV for placemark attribute tables.
- GeoJSON to CSV for FeatureCollection properties.
- CSV to GeoJSON / CSV to KML when you only have a spreadsheet of pins.
- Normalize to WGS84 lon/lat before sharing across US and UK teams.
Excel, BI, and Encoding
After conversion, treat coordinates as numbers and ids as text.
- UTF-8 for place names (München, Montréal, São Paulo).
- European Excel users: import comma CSV with the wizard if semicolons are the default.
- Power BI / Tableau: mark lat/lon as geographic roles after load.
- Do not let Excel auto-format long numeric IDs from OSM or census codes.
Common Mistakes
Map-shaped regrets.
- Swapping lat and lon in headers.
- Assuming every Feature is a Point.
- Dropping properties that differ on only some features.
- Reprojecting by renaming columns without transforming values.
- Editing geometry in Excel cell text without validation.
Best Practices
Keep geometry authoritative upstream.
- Use CSV as a distribution format for points and attributes.
- Name columns longitude/latitude explicitly.
- Include a crs/note field or README when not WGS84.
- Validate a few known landmarks after every conversion.
- Version the source GeoJSON alongside exported CSV.
Why Use Convert CSV Online?
Convert CSV Online is free, browser-based, and requires no account for everyday conversions. GeoJSON to CSV flattens features for Excel and BI; CSV to GeoJSON rebuilds point collections from spreadsheets. KML converters cover Earth-style placemarks. Client-side workflows suit US, UK, Canadian, Australian, and EU teams on Windows, macOS, and Linux browsers.
Flatten a GeoJSON file now
Open the FeatureCollection, preview attribute columns and coordinates, download CSV, then join or map elsewhere.
Conclusion
GeoJSON to CSV succeeds for point-heavy datasets when coordinates stay in a documented order and properties flatten deliberately. Use GIS formats for complex geometry; use CSV when the world just needs a spreadsheet of pins.
FAQ
Can I convert GeoJSON to CSV?
Yes. Point FeatureCollections convert cleanly to rows with property columns plus longitude and latitude. Polygons and lines need WKT or GIS-native formats for full fidelity.
Is GeoJSON longitude or latitude first?
RFC 7946 coordinates are [longitude, latitude]. Many CSV templates reverse that — label columns clearly.
How do I open GeoJSON in Excel?
Convert GeoJSON to CSV first, then open the CSV in Excel or convert CSV to Excel for sharing.
What about polygons?
Prefer keeping GeoJSON/Shapefile, or export a WKT geometry column. A single lat/lon centroid is only a summary pin.
Can I convert CSV back to GeoJSON?
Yes for point tables with lon/lat (or lat/lon) columns using CSV to GeoJSON. Complex geometries require richer fields like WKT.
How is this different from KML to CSV?
KML is XML used heavily by Earth/Maps placemarks; GeoJSON is JSON for web GIS. Both can flatten to attribute CSV, but parsers differ.
References
Convert your CSV in the browser
Preview, clean, and convert CSV files free with Convert CSV Online—no installation and no account required for everyday conversions.