LiveMap Routing

GraphHopper 11.0 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.

Local URLs

/demo Interactive GraphHopper route UI using request-time custom models.
/profiles Configured product profile inspection and local weight tuning.
/routing-engine Non-technical and technical walkthrough of how GraphHopper route guidance anchors are created.
/api/v1/routing/openapi.json Static OpenAPI 3.1 contract for the LiveMap facade.
http://localhost:8989 GraphHopper application connector.
http://localhost:8990 Dropwizard admin connector.

API

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 facade OpenAPI contract.
POST /route Native GraphHopper route endpoint, proxied for the map UI.

Route Request Shape

{
  "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.

Facade Examples

These requests run against the local Caddy proxy at /api/v1/routing/*.

Profile catalog

Fetch configured product profiles and their weights.

Single route

Route with one product profile, automatic Zurich time bucket, and no debug payload.

Profile comparison

Route the same points through all configured product profiles with debug enabled.

Explicit bucket

Force a night bucket to exercise temporal accident, crime, and presence values.

Validation path

Request an unknown profile to inspect facade error handling.

OpenAPI contract

Fetch the contract served by the facade for client generation or inspection.

No request selected
Click an example above to run it.
Response will appear here.

Routing Dimensions

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.

Run Locally

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.

Repository

github.com/livemapai/livemap-routing