Back to all posts

How to Export Google Maps Saved Places as GeoJSON: Complete Guide

Learn how to export your Google Maps saved places as GeoJSON with step-by-step instructions, including solutions for the geocoding challenge.

July 20, 2025

β€’

8 min read

GeoJSON has become the default format for geographic data on the web. If you're building a custom map, working with modern mapping libraries, or doing spatial analysis in Python or R, GeoJSON is likely what you need. The problem: Google Maps doesn't export your saved places in GeoJSON format - or any format with actual coordinates.

This guide covers how to get your saved places out of Google Maps and into proper GeoJSON files.

What is GeoJSON?

GeoJSON is an open standard for encoding geographic data using JSON (JavaScript Object Notation). Unlike older formats like KML or Shapefile, GeoJSON is human-readable, easy to parse, and natively supported by virtually every modern mapping library and GIS tool.

A simple GeoJSON file looks like this:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "name": "Favorite Coffee Shop",
        "category": "Starred"
      },
      "geometry": {
        "type": "Point",
        "coordinates": [-122.4194, 37.7749]
      }
    }
  ]
}

Each place becomes a "Feature" with properties (name, notes, category) and geometry (the coordinates). This structure works seamlessly with tools like Leaflet, Mapbox GL JS, D3.js, QGIS, and geospatial Python libraries like GeoPandas.

Why Choose GeoJSON?

Web development: If you're building a web map with Leaflet, Mapbox, or any JavaScript mapping library, GeoJSON is the native format. No conversion needed.

Data science: Python's GeoPandas, R's sf package, and other analysis tools work directly with GeoJSON. It's the standard for spatial data in modern data pipelines.

Interoperability: GeoJSON is an OGC standard and works across platforms. Your data isn't locked into any particular ecosystem.

Readability: Unlike binary formats, you can open a GeoJSON file in any text editor and understand what's there. This makes debugging and manual edits straightforward.

Not the format you need? If you're loading places onto a GPS device or outdoor app, GPX format is more appropriate. For Google Earth visualization, see our KML guide.

The Missing Coordinates Problem

Google Takeout exports your saved places as CSV files with names, addresses, and URLs - but no coordinates. GeoJSON requires coordinates (that's the "Geo" part), so you need to geocode your places before converting to GeoJSON.

How to Export and Convert to GeoJSON

Step 1: Download from Google Takeout

  1. Go to Google Takeout
  2. Click "Deselect all"
  3. Find and select only "Saved"
  4. Click "Next step" β†’ "Create export"
  5. Wait for the email, download, and unzip

You'll find CSV files in the "Saved" folder - one for each of your lists.

Step 2: Geocode and Convert

The CSV files need coordinates added before they can become GeoJSON. A geocoding service like Takeout Tools handles both steps: upload your CSVs, select GeoJSON as the output format, and download the result.

For developers who prefer to handle this programmatically, the workflow is:

  1. Parse the CSV files
  2. Geocode each address using Google Geocoding API, Nominatim, or another service
  3. Construct GeoJSON features from the results
  4. Output as a FeatureCollection

Step 3: Use Your GeoJSON

Your exported GeoJSON is ready for use in any compatible tool:

Web mapping libraries:

// Leaflet
L.geoJSON(yourGeoJSON).addTo(map);

// Mapbox GL JS
map.addSource('places', { type: 'geojson', data: yourGeoJSON });

Python (GeoPandas):

import geopandas as gpd
places = gpd.read_file('saved-places.geojson')

QGIS: Layer β†’ Add Layer β†’ Add Vector Layer, select your GeoJSON file

Kepler.gl: Drag and drop the file directly into the interface

GeoJSON Structure Details

After conversion, your GeoJSON will follow this structure:

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {
        "name": "Place Name",
        "address": "123 Main St, City",
        "notes": "Your notes here",
        "list": "Starred Places",
        "url": "https://maps.google.com/..."
      },
      "geometry": {
        "type": "Point",
        "coordinates": [longitude, latitude]
      }
    }
  ]
}

Note that GeoJSON uses [longitude, latitude] order (x, y), which is the opposite of how Google Maps typically displays coordinates. This is a common source of confusion but is correct per the GeoJSON specification.

Troubleshooting

Points appear at wrong locations in GIS software (coordinate order reversal)

GeoJSON uses [longitude, latitude] coordinate order β€” the x-axis first. Some GIS tools expect [latitude, longitude] and interpret the file with axes swapped, which makes your points appear in the wrong hemisphere or reflected.

In QGIS: if points appear in the wrong location after import, go to Layer Properties β†’ Source to check which CRS is assigned (it should be EPSG:4326). If the CRS is correct but points are still mirrored, the coordinate order is swapped and you need to run the geometry swap tool: open the Processing Toolbox (Ctrl+Alt+T), search for "Swap X and Y coordinates", and run it on the layer. The tool may also appear under Vector β†’ Geometry Tools in some QGIS versions, but the Processing Toolbox search is more reliable across versions.

In Python (GeoPandas):

import geopandas as gpd
from shapely.ops import transform

gdf = gpd.read_file('saved-places.geojson')
# If coordinates are reversed, swap them:
gdf['geometry'] = gdf['geometry'].apply(
    lambda geom: transform(lambda x, y: (y, x), geom) if geom else geom
)

In general: if your points appear in the wrong location, try importing with coordinates swapped before assuming the data is wrong.

"Labeled Places" GeoJSON has a different structure

Google Takeout's "Labeled Places" export (Home, Work, custom labels) produces a GeoJSON with a slightly different property structure than regular saved list exports. The feature properties may use different field names. If you're importing Labeled Places and the names or addresses appear wrong, check the raw JSON and adjust your property mappings accordingly.

Verify after import

Before using imported GeoJSON for any analysis, check that a known landmark appears at the correct location. Zoom to a place you know well and confirm it's where it should be. This catches coordinate order errors before they affect your work.

Quick coordinate rescue for small lists

If you have a small number of places and want to get coordinates without uploading anything: open each Google Maps URL from your CSV export in a browser. The expanded URL shows @lat,lon in the address bar. You can copy those coordinates manually into your GeoJSON. Not practical for large lists, but useful for 5–10 places.

Pro Tips

  1. Validate your GeoJSON. Use our free GeoJSON validator to check that your file is valid before using it in production. Invalid GeoJSON can cause silent failures in mapping libraries.

  2. Keep coordinate precision reasonable. Six decimal places is plenty for saved places. More precision just increases file size without adding useful accuracy.

  3. Use the properties object. GeoJSON's properties can hold any metadata - use them for filtering and styling. For example, assign different colors based on the list property.

  4. Consider file size. If you have thousands of places, GeoJSON can get large. For web applications, consider loading data dynamically or using vector tiles for very large datasets.

  5. Preserve your source files. Keep the original Google Takeout CSV files. If you need to regenerate or convert to different formats later, you'll have the raw data.

Frequently Asked Questions



Free Tools

Already have a GeoJSON file? Use our free browser-based tools:

See Other Export Guides

Looking for different output formats?

How to Export Google Maps Saved Places as GeoJSON: Complete Guide | Takeout Tools