Map
Explore pedestrian routing, inspect profiles, and save routes into the testing corpus.
Open Map
Custom GraphHopper service and local tools for LiveMap
pedestrian routing. The service imports canonical
livemap:* tags into lm_*
encoded values and exposes a small application-facing
routing facade.
Explore pedestrian routing, inspect profiles, and save routes into the testing corpus.
Open MapRun benchmark sessions, view results, manage saved routes, and start field walks.
Open TestingRead the routing contract, active dimensions, profile model, and local API notes.
Open About| /profiles | Configured product profile inspection and local weight tuning. |
|---|---|
| /docs | Browsable API reference (Redoc), rendered from the live OpenAPI contracts below. |
| /crime-h3-aggregation |
Notebook walkthrough of aggregating crime
incidents into H3 hexagons for the
crime routing dimension.
|
| /api/v1/routing/openapi.json | Generated OpenAPI 3.1 contract for the v1 facade. |
| /api/v2/routing/openapi.json | Generated OpenAPI 3.1 contract for the v2 navigation API. |
| http://localhost:8989 | GraphHopper application connector. |
| http://localhost:8990 | Dropwizard admin connector. |
POST /api/v1/routing/route
|
Routes one request across configured product profiles. |
|---|---|
GET /api/v1/routing/profiles
|
Returns the configured profile catalog. |
GET /api/v1/routing/openapi.json
|
Returns the v1 facade OpenAPI contract. |
POST /api/v2/routing/route
|
Turn-by-turn navigation (OSRM-compatible JSON) for a single profile; consumed by Ferrostar. |
POST /api/v2/routing/plan
|
Multi-profile pre-trip plan; returns a profile-keyed wrapper of OSRM-compatible documents, one per profile. |
GET /api/v2/routing/openapi.json
|
Returns the v2 navigation OpenAPI contract. |
POST /route |
Native GraphHopper route endpoint, proxied for the map UI. |
v1 facade — multi-profile comparison, LiveMap response envelope:
{
"points": [[8.5400, 47.3700], [8.5420, 47.3700]],
"profiles": ["foot_fast", "foot_safe", "foot_calm"],
"bucket": "auto",
"debug": true,
"details": true
}
details: true adds per-edge path details to
each route (edge_id, osm_way_id,
road_class, and the lm_* values at
the resolved bucket) — used by the field tools to join
feedback to engine state. Responses always include
turn-by-turn instructions.
v2 navigation — single profile, OSRM-compatible response:
{
"profile": "foot_safe",
"points": [[8.5400, 47.3700], [8.5420, 47.3700]],
"bucket": "auto",
"locale": "en",
"voice_units": "metric"
}
v2 plan — multiple profiles, profile-keyed wrapper of OSRM-compatible documents:
{
"points": [[8.5400, 47.3700], [8.5420, 47.3700]],
"profiles": ["foot_fast", "foot_safe"],
"bucket": "auto",
"locale": "en",
"voice_units": "metric"
}
These requests run against the local Caddy proxy at
/api/v1/routing/* and
/api/v2/routing/*.
Fetch configured product profiles and their weights.
Route with one product profile, automatic Zurich time bucket, and no debug payload.
Route the same points through all configured product profiles with debug enabled.
Single-profile turn-by-turn route in OSRM-compatible shape, as Ferrostar consumes it.
Multi-profile pre-trip plan; returns one OSRM-compatible document per requested profile.
Force a night bucket to exercise temporal accident, crime, and presence values.
Request an unknown profile to inspect facade error handling.
Fetch the v1 facade contract for client generation or inspection.
Fetch the per-version v2 navigation contract, generated at runtime from the live resource.
Click an example above to run it.
Response will appear here.
| Active dimensions |
accident, crime,
presence,
tree_coverage, lights
|
|---|---|
| Encoded values |
Canonical LiveMap values are stored as
lm_* GraphHopper encoded values.
|
| Temporal buckets |
wd_am, wd_pm,
wd_nt, we_am,
we_pm, we_nt
|
| Score range |
Imported edge scores use 0 for no
modeled signal and 1 to
5 for positive signal strength; UI
weights are 0.0 to
1.0.
|
just up
LIVEMAP_PUBLIC_PORT=8081 just up
The top-level justfile builds the service JAR, copies it
into
runtime/, builds the app image, and starts the
container. The public web port defaults to
8080.