Maps & Geocoding
Render interactive maps, geocode addresses, reverse geocode coordinates, search for places, and calculate routes — all without an API key. Powered by OpenStreetMap Nominatim and OSRM. Each request uses a randomised IP identity — no rate limiting, no queuing.
| Verb | Description |
|---|---|
MAP RENDER ?points SET ?url | Render an interactive Leaflet map — returns a temporary URL |
MAP RENDER ?points WITH 13 SET ?url | WITH sets the zoom level (1–19, default 13 for single point) |
MAP PIN ?point AS "Label" | Add a labelled pin to the map |
MAP GEOCODE "address" SET ?coords | Address to {lat, lon, display_name} |
MAP REVERSE "lat,lon" SET ?address | Coordinates to address |
MAP SEARCH "query" SET ?places | POI search — returns array of places |
MAP ROUTE "from" TO "to" SET ?route | Driving route — returns distance and duration |
MAP DISTANCE "lat1,lon1" TO "lat2,lon2" SET ?km | Haversine distance in kilometres |
MAP CLUSTER ?places SET ?clusters | Group nearby points — returns cluster array |
MAP BOUNDS ?places SET ?bounds | Bounding box around a set of points |
MAP STYLE ?map WITH "preset" | Apply tile preset: satellite, toner, watercolor |
Render a map
MAP GEOCODE "Cape Town, South Africa" SET ?pt
AFTER MAP RENDER ?pt SET ?url
AFTER EMIT ?url
Try it ›
Multi-pin map from database
QUERY "stores" FROM "shop" SET ?rows
AFTER MAP RENDER ?rows SET ?url
AFTER EMIT ?url
(* rows must have lat and lon (or lng) fields *)
Geocode — address to coordinates
MAP GEOCODE "10 Downing Street, London" SET ?loc
AFTER EMIT ?loc(lat) & ", " & ?loc(lon)
AFTER EMIT ?loc(display_name)
Try it ›
Reverse geocode
MAP REVERSE "-33.9249,18.4241" SET ?addr
AFTER EMIT ?addr(display_name)
Try it ›
Route
MAP ROUTE "Cape Town" TO "Johannesburg" SET ?r
AFTER EMIT ?r(distance_km) & " km — " & ?r(duration_min) & " min"
Try it ›
Distance
MAP DISTANCE "-33.9249,18.4241" TO "-26.2041,28.0473" SET ?km
AFTER EMIT ?km & " km (Haversine)"
Try it ›