Four data sources
Note frontmatter, GeoJSON, CSV, and any JSON API declared with JSONPath. No code required.
Obsidian plugin · map-friendly outside the US
Notes, GeoJSON, CSV or any JSON API — four ways to bring places in. One marker per place, every visit kept as a sub-record.
Not just "there is a map" — places treated as real data.
Note frontmatter, GeoJSON, CSV, and any JSON API declared with JSONPath. No code required.
Notes at the same coordinate merge into one marker; each visit becomes a sub-record you can open or delete.
Place list, photo wall and timeline. Click an entry and the map flies to it.
Drop a life-map code block into a note and render a small map in place.
Tianditu with automatic fallback, an AMap tile preset, custom XYZ. Coordinates are converted, so pins line up.
Export the current filtered view to GeoJSON or a Markdown table.
.obsidian/plugins/life-map and enable the plugin.coordinates: ["40.0496", "116.2807"] in frontmatter, or use the "New place note" command.life-map-x.y.z.zip from Releases<your vault>/.obsidian/plugins/life-map/Obsidian → Settings → Community plugins → Browse, search Life Map and install.
Requires Obsidian 1.7.2+ · desktop and mobile
tk; without it the plugin falls back to a keyless basemap.
You can switch the basemap to AMap tiles, but POI search and routing are not included — those require the AMap JS SDK, which is a different architecture.
Yes. Overseas coordinates skip the GCJ-02 offset automatically and render correctly on OpenFreeMap or any global tile source.
No telemetry. Network access only happens for the basemap you pick and the HTTP sources you configure yourself.
No. Deletes go to the Obsidian/system trash and always require confirmation.