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.

All Geometry Types Centroid Lat/Lon No GDAL Required CSV Download Pure Go
Share this tool

GeoJSON Input

— or upload —

characters

Output Options

Selected options are appended as extra columns after all property keys.

Quick Load:

Extracting properties...

Paste or upload a GeoJSON file and click Extract to CSV to see the property table.

How the Extraction Works

GeoJSON FeatureCollection {"type":"Feature" "properties":{…}} Extract Property key union + centroid lat/lon all geometry types CSV Table Excel / Python / R name,pop,lat,lon Paris,2M,48.86,2.35

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 TypeCentroid MethodNotes
PointDirect coordinatesMost precise — no computation needed
MultiPointUnweighted average of all pointsSimple mean of lat and lon values
LineStringHalf-length midpointWalks segments, returns coord at 50% of total path length
MultiLineStringHalf-length midpoint of all segmentsConcatenates all lines, then applies LineString method
PolygonShoelace formula (exterior ring)True area-weighted centroid; may fall outside concave shapes
MultiPolygonArea-weighted average across all outer ringsLarger polygons contribute more weight
GeometryCollectionNot supportedCentroid 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?

The tool takes the union of all property keys across every feature. Features missing a particular key get an empty cell in that column. This mirrors how ogr2ogr handles schema differences between features in the same collection.

Can I upload a .geojson or .json file directly?

Yes. Click 'Choose file' and select any .json or .geojson file. The FileReader API reads the file in the browser and places its text into the input field — no binary upload occurs, so the 5 MB limit applies to the decoded text size.

Why might the centroid fall outside my polygon?

The shoelace centroid formula computes the true geometric centroid of the exterior ring. For concave polygons (crescent shapes, horseshoes, L-shapes) the mathematical centroid can lie outside the polygon boundary. This is mathematically correct but visually surprising. For concave polygons, consider computing the centroid of the convex hull instead.

How do I convert GeoJSON to CSV without installing GDAL?

That is exactly what this tool does — paste or upload a GeoJSON file and click Extract. No GDAL, no ogr2ogr, no Python environment required. The conversion runs entirely on the server using pure Go and standard library CSV encoding.

What happens to nested property values like arrays or objects?

Nested JSON values (arrays, objects) are re-serialised to compact JSON strings and placed in the CSV cell. For example, a property value of {"tags":["capital","historic"]} becomes the string '["capital","historic"]' in the CSV. This preserves all data even though the cell value is not a simple scalar.

What is the maximum file size this tool accepts?

The input limit is 5 MB of decoded text. A 5 MB GeoJSON file can contain anywhere from a few hundred (complex polygon) to tens of thousands (simple point) features. For larger datasets, split the FeatureCollection into chunks or use ogr2ogr locally.