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.
/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.

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

Route Request Shape

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
}

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"
}

Facade Examples

These requests run against the local Caddy proxy at /api/v1/routing/* and /api/v2/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.

v2 navigation

Single-profile turn-by-turn route in OSRM-compatible shape, as Ferrostar consumes it.

v2 plan

Multi-profile pre-trip plan; returns one OSRM-compatible document per requested profile.

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 (v1)

Fetch the v1 facade contract for client generation or inspection.

OpenAPI contract (v2)

Fetch the per-version v2 navigation contract, generated at runtime from the live resource.

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