bobstanton29 downloadsCreate interactive maps with markers, tracks, overlays, image alignment, heatmaps, VaultQuery data, CSV and GPX imports, custom styling, charts, search, directions, and provider extensions.
Manage points of interest, GPX and GeoJSON data in Obsidian notes and visualize them on maps.
Try in a sandbox: https://sandbox.obsidian.stanton.dev/places/

Rendering a map requires at least one plugin with the map capability.
| Plugin | Map | Search | Directions | Isochrones | Elevation | Snap | Track match |
|---|---|---|---|---|---|---|---|
| places-freeroute | yes | yes | yes | ||||
| places-geoapify | yes | yes | yes | yes | yes | yes | |
| places-leaflet | yes | ||||||
| places-mapbox | yes | yes | yes | yes | yes | yes | |
| places-maptiler | yes | yes | yes | ||||
| places-nominatim | yes | ||||||
| places-openfreemap | yes | ||||||
| places-openrouteservice | yes | yes | yes | yes | yes | ||
| places-radar | yes | yes | yes | ||||
| places-stadia | yes | yes | yes | yes | yes | yes | yes |
| places-thunderforest | yes | ||||||
| places-utilities | yes | ||||||
| places-environment |
Search covers geocoding and POI lookup. Elevation replaces missing or inaccurate elevation in a track. Snap corrects a track's geometry against the road or path network. Track match identifies the named ways a track follows, with the distance and the share of the track spent on each.
places-leaflet renders raster tiles; the other map providers render vector tiles.
places-environment supplies tide, solar, and weather data as charts, tables, templates, and
map data. places-utilities adds track classification, naming, playback, and editing.
| Area | Request |
|---|---|
| Vector tile overlay source | Loads the TileJSON describing the tile source |
| Image overlay | Fetches the image and inlines it as a data URL |
| GPX, GeoJSON, CSV, or polyline overlay | Fetches the overlay content |
| Task | Schedule | Purpose |
|---|---|---|
| Map restore check | Every 2 seconds | Restores map surfaces that lost their WebGL context |
| Frequency analysis worker | While a heatmap block renders | Runs heatmap overlap analysis in a Web Worker, off the main thread |
| Query parameter playback | While a parameter is playing | Advances an animated query parameter at the interval the parameter defines |
| Library | Purpose |
|---|---|
| Chart.js | Elevation, speed, and pace charts |
| fastest-levenshtein | String distance for track similarity and name matching |
| obsidian-debug-logger | Scoped logging, gated behind the developer mode setting |
| placeholder-resolver | Resolves placeholders in label and note templates |
| places-shared | Shared map, overlay, routing, and utility code |
| zstd-wasm | Zstandard compression for overlay data stored in frontmatter |
Resolved at runtime from the installed plugin.
| Plugin | Purpose |
|---|---|
| VaultQuery | SQL queries over vault notes as a map data source |
| Dataview | Dataview queries as a map data source |