How to Export Google Maps Saved Places to QGIS
A step-by-step guide for GIS professionals and spatial analysts who want to import Google Maps saved places into QGIS as a proper vector layer with coordinates, attributes, and styling.
May 25, 2026
•12 min read
If you're working in QGIS and you've accumulated a useful set of saved places in Google Maps — field sites, project locations, client addresses, reference points — you probably want those places as an actual vector layer, not a manually entered point dataset. The problem is that Google Takeout exports your saved places as CSV files with names and addresses but no coordinates. QGIS needs coordinates to place points on a map.
This guide covers both viable import paths in full detail: the CSV route (geocode first, then import) and the KML/KMZ route (export from Google My Maps directly). Both produce a functional point layer in QGIS. Which one you choose depends on your dataset size, whether you already have a My Maps layer, and your tolerance for geocoding API costs.
Two Import Paths
| CSV with Coordinates | Google My Maps → KMZ | |
|---|---|---|
| Source | Google Takeout CSV → geocode → QGIS | Google My Maps → export KMZ → QGIS |
| Geocoding required | Yes | No |
| Best for | Large lists, programmatic workflows, when you need coordinates as attributes | When you already have a My Maps layer, or want to avoid geocoding costs |
| Output | Point layer with lat/lng columns, all original attributes | Point layer from KMZ geometry, limited attributes |
| Coordinate precision | Geocoded (address-level accuracy) | Exact coordinates from My Maps |
For most users starting from a Google Takeout export, Path 1 is the correct workflow. Use Path 2 if you've already built a Google My Maps layer or need exact coordinates without geocoding.
Path 1: CSV with Coordinates (Recommended)
Step 1: Export from Google Takeout
- Go to Google Takeout
- Click "Deselect all" at the top of the product list
- Scroll down and select only "Saved" (this contains your Google Maps lists)
- Click "Next step" → set your file type and delivery method → "Create export"
- Wait for the export email, download the archive, and unzip it
Inside the archive you'll find a Takeout/Saved/ directory containing CSV files — one per list. Common files include Starred Places.csv, Want to go.csv, and any custom lists you've created. Each row has a Title, Note, URL, and Address column, but no coordinates.
Step 2: Add Coordinates with Takeout Tools
Upload your CSV files to Takeout Tools. The service geocodes each address and returns a CSV with latitude and longitude columns added. You can also export as GeoJSON if you prefer that format for import.
For large datasets or recurring workflows, you can geocode programmatically using the Google Geocoding API, Nominatim (OpenStreetMap), or Mapbox Geocoding API. The key requirement is that your output CSV contains distinct numeric columns for longitude (X) and latitude (Y) in decimal degrees.
Your geocoded CSV will look like this:
Title,Address,Latitude,Longitude,Note,List
"Corner Bakery","123 Main St, Portland OR","45.5231","-122.6765","Good coffee","Starred Places"
"Site A","456 Field Rd, Eugene OR","44.0521","-123.0868","Sample location","Field Sites"
Step 3: Import into QGIS
This uses QGIS's Data Source Manager with the Delimited Text provider.
-
Open the Data Source Manager: go to Layer → Add Layer → Add Delimited Text Layer, or press
Ctrl+L, or click the Open Data Source Manager button in the Data Source toolbar. The Delimited Text tab should be active. -
File name: Click the … button and select your geocoded CSV file.
-
Layer name: Optionally rename the layer (defaults to the filename).
-
File Format: Select CSV (comma separated values). If your file uses a different delimiter, select Custom delimiters and check the appropriate box (Tab, Semicolon, etc.).
-
Record and Field Options: Ensure First record has field names is checked. Enable Detect field types to have QGIS automatically type numeric columns as doubles.
-
Geometry Definition: Select Point coordinates.
- X field: select your longitude column (e.g.,
Longitude) - Y field: select your latitude column (e.g.,
Latitude) - Leave Z field and M field empty unless your data includes elevation
- X field: select your longitude column (e.g.,
-
Geometry CRS: Click the CRS selector (the globe icon) and choose EPSG:4326 – WGS 84. This is the correct CRS for decimal-degree latitude/longitude coordinates from geocoding services.
-
Check the Sample Data preview at the bottom to confirm columns look correct and the geometry fields are resolved.
-
Click Add, then Close.
Your places appear as a new point layer in the QGIS Layers panel and on the canvas.
QGIS 3.x note: The Data Source Manager replaced the older standalone "Add Delimited Text Layer" dialog in QGIS 3.0. All modern versions of QGIS 3.x use this interface.
Step 4: Verify and Style
Verify the import: Zoom to the layer extent (right-click the layer → Zoom to Layer). Points should appear at geographic locations corresponding to your saved places. Select a known landmark from the attribute table (right-click → Open Attribute Table) and confirm it appears in the right place on the canvas.
Style by list/category: If your CSV includes a List column (or similar categorical field), you can symbolize by it:
- Right-click the layer → Properties → Symbology
- Change the renderer from Single Symbol to Categorized
- Set Value to your list column (e.g.,
List) - Click Classify to generate a color per category
- Adjust colors and symbol sizes as needed, then click OK
This gives you visually distinct symbols for "Starred Places," "Want to go," and any custom lists.
Path 2: Google My Maps → KMZ Export → QGIS
This path skips geocoding entirely but requires your places to exist in Google My Maps (distinct from Google Maps saved places). Use it when you've already built a My Maps layer, or when you've manually added/imported places there.
Step 1: Export from Google My Maps
- Open Google My Maps and open the map you want to export
- Click the three-dot menu (⋮) next to the map title
- Select Export to KML/KMZ
- In the dialog, choose whether to export the entire map or a single layer
- The export defaults to KMZ. Check "Export as KML instead of KMZ" if you want the uncompressed text format (either works in QGIS)
- Click Download
The downloaded .kmz (or .kml) file contains your points with their actual coordinates embedded in the file — no geocoding required.
Note: Google Maps saved places (Takeout) and Google My Maps are separate systems. If your places are in Google Maps lists (the star/bookmark system), they won't appear in My Maps automatically. You would need to re-add them or import the Takeout CSV into My Maps first.
Step 2: Import the KMZ into QGIS
Method A — Layer menu (simplest):
- Go to Layer → Add Layer → Add Vector Layer
- In the Data Source Manager dialog, Vector tab, click the … button next to Vector Dataset(s)
- In the file dialog, change the file type filter to All files (*) or KML/KMZ files to see your file
- Select the
.kmzor.kmlfile and click Open - Click Add, then Close
QGIS will create separate layers for each folder in the KML structure. For a simple single-layer My Maps export, you'll typically get one point layer.
Method B — Drag and drop:
Drag the .kmz file directly from your file manager into the QGIS canvas or Layers panel. QGIS will prompt you to select which layers to add if the file contains multiple geometry types.
Method C — KML Tools plugin (recommended for complex exports):
If your KMZ has multiple folders or HTML popup descriptions you want as attribute fields, install the KML Tools plugin (Vector → KML Tools → Import KML/KMZ). This plugin consolidates all points into a single layer and parses popup HTML into separate attribute columns, which is useful when Google My Maps has rich place descriptions.
Troubleshooting
Points appear at wrong locations (coordinate order issue)
GeoJSON uses [longitude, latitude] order (x, y), not [latitude, longitude]. If you imported a GeoJSON file and your points appear mirrored — for example, places in the United States appear in the Indian Ocean — the X and Y fields are swapped.
Fix for CSV import: In the Data Source Manager, verify that X field is set to your longitude column (negative values for western longitudes) and Y field is your latitude column. They are often labeled in the wrong order.
Fix after import: If the layer is already loaded with swapped coordinates, you have two options:
- Re-import with fields corrected (fastest)
- Use the Processing Toolbox (Ctrl+Alt+T) → search "Swap X and Y coordinates" → run it on the layer. This tool may also appear under Vector → Geometry Tools depending on your QGIS version, but the Processing Toolbox search is the most reliable path.
Fix for GeoJSON import: GeoJSON-compliant files are [longitude, latitude] by convention, so QGIS should handle them correctly. If they appear wrong, check whether the file was generated by a non-compliant tool. You can verify in Layer Properties → Source and confirm the CRS is EPSG:4326.
CSV won't import / geometry not detected
No coordinate columns visible in the field dropdowns: The CSV may have been saved with coordinates as text strings rather than numbers, or the column headers contain special characters. Open the CSV in a text editor and verify the header row has clean column names (e.g., Latitude, Longitude) and that the values are plain decimal numbers (45.5231, not 45° 31' 23.16" N).
Geometry definition grayed out: If the Geometry Definition section won't let you select Point coordinates, ensure the file was recognized as having usable columns. Check the Sample Data preview — if it shows only one column, the delimiter may be wrong (try Custom delimiters → Comma).
CRS mismatch after import: If points load but appear in the wrong location relative to your base map, check the layer CRS. Right-click the layer → Properties → Source → Assigned Coordinate Reference System. If it shows anything other than EPSG:4326, click the CRS selector and set it to EPSG:4326 – WGS 84.
Only a single point at (0, 0): This usually means QGIS used the wrong CRS during import. The coordinates were loaded but interpreted in a projected CRS where decimal-degree values fall near the origin. Re-import the layer and explicitly set Geometry CRS to EPSG:4326.
Pro Tips
Save as a permanent layer (Shapefile or GeoPackage): The CSV import creates a virtual layer that references the original file. To make the layer persistent and editable, right-click it → Export → Save Features As, choose GeoPackage (recommended) or ESRI Shapefile, set the CRS to EPSG:4326, and save. GeoPackage is preferred over Shapefile for new work — it handles UTF-8 text, field names longer than 10 characters, and stores multiple layers in a single file.
Save your QGIS project: Once the layer is styled the way you want, save the project (Project → Save, .qgz format). The project stores the layer path, styling, and CRS assignments. Note that if you're using a CSV-based virtual layer, the project references the CSV file path — if you move the CSV, QGIS will prompt you to relink it. Converting to GeoPackage first avoids this.
Join additional datasets by place name or address: Once your saved places are a vector layer, you can join tabular data to them using Vector → Data Management Tools → Join Attributes by Field Value. This is useful if you have supplemental data (ratings, visit counts, custom scores) in a separate spreadsheet.
Reproject for local analysis: QGIS will display EPSG:4326 layers correctly on a projected map (on-the-fly reprojection), but if you need accurate distance or area calculations, reproject to an appropriate local CRS first. For the United States, EPSG:5070 (Conus Albers) or a state plane zone is appropriate. Use Vector → Data Management Tools → Reproject Layer.
Frequently Asked Questions
Free Tools
- GeoJSON Validator - Validate GeoJSON before importing to QGIS
- GeoJSON to CSV Converter - Convert GeoJSON to CSV for QGIS import
- KML to GPX Converter - Convert KML exports to GPX