GeoJSON to CSV Converter
Paste or upload any GeoJSON file and extract all feature properties into a downloadable CSV table. Optionally adds centroid lat/lon and geometry type — no GDAL, no installs, works in the browser.
Extracting properties...
Paste or upload a GeoJSON file and click Extract to CSV to see the property table.
How the Extraction Works
Each GeoJSON feature becomes one CSV row. Property keys are collected across all features — missing values become empty cells.
What Is a GeoJSON Feature Collection?
GeoJSON (RFC 7946) is the standard open format for geographic vector data on the web. A FeatureCollection is the outermost container — it holds an array of Feature objects. Each Feature has two parts: a geometry (the shape, such as a Point, LineString, or Polygon) and a properties object (arbitrary key-value attributes).
Unlike a Shapefile — where every row in the .dbf attribute table must share the same schema — GeoJSON allows each feature to have a completely different set of property keys. This tool handles that by computing the union of all keys found across every feature in the collection. If a feature is missing a key that another feature has, its cell in that column is left blank.
A minimal two-feature example:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [2.3522, 48.8566] },
"properties": { "name": "Paris", "population": 2148327 }
},
{
"type": "Feature",
"geometry": { "type": "Point", "coordinates": [-0.1278, 51.5074] },
"properties": { "name": "London", "population": 8982000 }
}
]
}Why Extract GeoJSON Properties to CSV?
Most GIS tools export data as GeoJSON. Most data analysis happens in Excel, Google Sheets, Python pandas, or R. Without GDAL installed — and most people outside a GIS team do not have it — converting GeoJSON attributes to a spreadsheet normally requires a Python script, a QGIS plugin, or a command like ogr2ogr -f CSV output.csv input.geojson.
This tool replaces that entire workflow: paste the GeoJSON, click Extract. The result is a clean CSV with one column per property key and one row per feature. You can open it directly in Excel (File → Import → Text/CSV), load it in Python with pd.read_csv('features.csv'), or pull it into R with read.csv('features.csv').
The optional centroid columns are useful when you want to map the data in Excel, Google Maps, or Tableau without needing a GIS tool — each row gets a lat/lon pair that can be plotted directly.
How Centroid Lat/Lon Is Computed
The centroid algorithm depends on the geometry type. No external GIS library is used — all computation runs in pure Go on the server.
| Geometry Type | Centroid Method | Notes |
|---|---|---|
| Point | Direct coordinates | Most precise — no computation needed |
| MultiPoint | Unweighted average of all points | Simple mean of lat and lon values |
| LineString | Half-length midpoint | Walks segments, returns coord at 50% of total path length |
| MultiLineString | Half-length midpoint of all segments | Concatenates all lines, then applies LineString method |
| Polygon | Shoelace formula (exterior ring) | True area-weighted centroid; may fall outside concave shapes |
| MultiPolygon | Area-weighted average across all outer rings | Larger polygons contribute more weight |
| GeometryCollection | Not supported | Centroid columns left blank |
Antimeridian caveat: polygons that cross the ±180° meridian (e.g. Fiji, Chukotka) will have incorrect centroids because the planar formula treats longitude as a flat coordinate. Split those features at the antimeridian before converting.
GeoJSON Properties vs Shapefile Attribute Table
In a Shapefile, the attribute table lives in a .dbf file alongside .shp and .prj. Every row must share exactly the same schema, and field names are capped at 10 characters. GeoJSON properties serve the same role but are embedded directly in the JSON — one object per feature, with no schema constraints and unlimited key lengths.
If you want to reproduce an ogr2ogr CSV export without installing GDAL, this tool is the equivalent of:
ogr2ogr -f CSV output.csv input.geojson
The row order in the CSV matches the feature order in the original FeatureCollection, so you can join the CSV back to your GeoJSON by row index if you need to re-attach the attributes after analysis.
What to Do with the CSV — Excel, Python, R
Excel / Google Sheets — open the file directly or use File → Import → Text/CSV. Column headers come from the property keys. If you included centroid columns, insert a map chart using the lat/lon columns.
Python pandas — df = pd.read_csv('features.csv'). If you want to join back to GeoJSON: gdf = gpd.read_file('input.geojson'); gdf.join(df.drop(columns=['centroid_lat','centroid_lon'])).
R — df <- read.csv('features.csv'). Combine with sf: sf_obj <- st_read('input.geojson'); sf_obj$new_col <- df$new_col.
Tableau / Power BI — connect to the CSV as a flat data source. Use the centroid_lat and centroid_lon columns to create a geographic point map without needing a spatial file connector.
Frequently Asked Questions
What if my GeoJSON features have different properties?
Can I upload a .geojson or .json file directly?
Why might the centroid fall outside my polygon?
How do I convert GeoJSON to CSV without installing GDAL?
What happens to nested property values like arrays or objects?
What is the maximum file size this tool accepts?
Related Calculators
GeoJSON Validator
Validate, format, and minify GeoJSON — check ring closure, coordinate order, and schema
UTM Zone Finder
Find the UTM zone, EPSG code, and Proj4 string for any lat/lon coordinate
Haversine Distance Calculator
Compute great-circle distance between two coordinate pairs
Polygon Area Calculator
Calculate the area of a polygon from its coordinate vertices
Map Scale Calculator
Convert between map scale ratios and real-world distances