Sync locations from a spreadsheet (6 minutes)
A published Google Sheet can act as the live data source for a map’s locations. Edit rows in the spreadsheet and the changes appear on the map the next time it loads — no rebuild, no re-export. This tutorial connects an existing map to a sheet end to end.
Any map with locations works as a starting point. The CSV import guide covers the panel options this tutorial puts to use.
Export the current locations
Open the Locations panel and click Export. Mapplic downloads every location as
a CSV file, with a header row of property keys
(id, title, coord, group, …) and one row per location. This becomes the seed for
the spreadsheet, so the columns already match what Mapplic expects on the way back in.
Starting from scratch instead? A single-row sheet with an id header is enough —
every other column is optional.
Upload it to Google Sheets
Upload the CSV to Google Drive and open it with Google Sheets (Open with → Google
Sheets). Each column stays mapped to a location property, so edits are as simple as
changing a cell. Keep the id column intact — it is what links each row to its location
and, on vector maps, to its SVG element.
Publish the sheet as CSV
In Google Sheets, choose File → Share → Publish to web. Select the sheet (or the whole document), pick Comma-separated values (.csv) as the format, and click Publish. Copy the URL it produces.
Use the URL from Publish to web, not the normal share link. Only the published CSV URL returns raw comma-separated data; the share link returns a web page Mapplic cannot parse.
Link the CSV in Mapplic
Back in the Locations panel, enable External CSV and paste the published URL into the CSV source field. Mapplic fetches the sheet and lists any rows that aren’t already in the map below the built-in locations. At this point both sources coexist — the next step decides how they combine.
Choose how the sheet takes over
Two ways lead to a spreadsheet-driven map, depending on whether the internal locations should stay:
- Replace them entirely. Open the raw data editor with the
<>button in the Locations panel header and set the locations to an empty array,[]. Every location now comes from the sheet alone. - Merge over them. Set Duplicates to Merge. Rows whose
idmatches an internal location overwrite that location’s fields; rows with a newidare added. This keeps local locations while letting the sheet drive specific columns — status or price, say, with styling left to a preset.
Replace is the cleaner choice for a map that lives entirely in the sheet; merge suits a map where the spreadsheet feeds one slice of the data.
Verify and maintain
Change a cell in the sheet, save, and reload the map — the update shows up. From here the spreadsheet is the source of truth: add a row to add a location, edit a cell to change one, delete a row to remove it.
Updates are not live. The map reads the published CSV when it loads, so edits reach visitors on their next view rather than instantly. Google also caches published sheets for a few minutes before serving the new version.
Keep External CSV linked to go on editing in the sheet. To pull everything back into the map and cut the link, use Import instead — see Importing and the CSV settings for the underlying keys.