List - Routing and Navigation Services
Overview
Curated collection of routing engines, geocoding services, and navigation APIs for geospatial applications. Includes open-source self-hosted options and commercial APIs.
Open Source Routing Engines
OSRM (Open Source Routing Machine)
High-performance routing engine using OpenStreetMap data.
| Aspect | Details |
|---|---|
| Website | project-osrm.org |
| GitHub | Project-OSRM/osrm-backend |
| License | BSD 2-Clause |
| Data Source | OpenStreetMap |
| Modes | Driving, walking, cycling |
Features:
- Extremely fast routing
- Turn-by-turn navigation
- Table (distance matrix) queries
- Trip optimization (TSP)
- Tile-based map matching
Valhalla
Multi-modal routing engine with isochrone support.
| Aspect | Details |
|---|---|
| Website | valhalla.github.io/valhalla |
| GitHub | valhalla/valhalla |
| License | MIT |
| Data Source | OpenStreetMap |
| Modes | Driving, walking, cycling, transit, multimodal |
Features:
- Time-distance matrix
- Isochrones (travel time polygons)
- Map matching
- Elevation-aware routing
- Turn-by-turn directions with maneuvers
GraphHopper
Flexible routing engine with multiple profiles.
| Aspect | Details |
|---|---|
| Website | graphhopper.com |
| GitHub | graphhopper/graphhopper |
| License | Apache 2.0 |
| Modes | Car, bike, foot, custom profiles |
Features:
- Route optimization API
- Matrix API
- Isochrone API
- Custom vehicle profiles
- Commercial hosted version available
OpenRouteService
OGC-compliant routing and geospatial analysis.
| Aspect | Details |
|---|---|
| Website | openrouteservice.org |
| GitHub | GIScience/openrouteservice |
| License | LGPL 3.0 |
| API | api.openrouteservice.org |
Features:
- Directions, isochrones, matrix
- Points of interest search
- Geocoding
- Elevation profiles
- Free hosted API (rate limited)
Commercial Routing APIs
| Service | Description | Links |
|---|---|---|
| Mapbox Directions | Turn-by-turn routing with traffic | Docs |
| Google Directions | Routing with real-time traffic | Docs |
| HERE Routing | Enterprise routing with fleet features | Docs |
| TomTom Routing | Traffic-aware routing | Docs |
| Esri Network Analyst | ArcGIS routing services | Docs |
Geocoding Services
Open Source / Free
| Service | Description | Links |
|---|---|---|
| Nominatim | OSM-based geocoding | Website |
| Photon | OSM geocoder with typo tolerance | GitHub |
| Pelias | Modular open geocoder | GitHub |
| OpenCage | Aggregated geocoding (free tier) | Website |
Commercial
| Service | Description | Links |
|---|---|---|
| Google Geocoding | High-quality global geocoding | Docs |
| Mapbox Geocoding | Fast geocoding with POI | Docs |
| HERE Geocoding | Enterprise address matching | Docs |
| Esri Geocoding | ArcGIS World Geocoder | Docs |
| SmartyStreets | US address validation | Website |
Accessibility & Scoring APIs
| Service | Description | Links |
|---|---|---|
| Walk Score | Walk/Transit/Bike scores | API |
| Mapbox Isochrone | Travel time polygons | Docs |
| TravelTime | Isochrone and reachability | Website |
R Package Integration
| Package | Description | Links |
|---|---|---|
| osrm | R interface to OSRM | CRAN |
| stplanr | Sustainable transport planning | CRAN |
| hereR | HERE API client | CRAN |
| googleway | Google Maps API client | CRAN |
| mapboxapi | Mapbox API client | CRAN |
| tidygeocoder | Multi-service geocoding | CRAN |
Python Libraries
| Library | Description | Links |
|---|---|---|
| osmnx | OSM network analysis | GitHub |
| routingpy | Multi-provider routing | GitHub |
| geopy | Geocoding abstraction | GitHub |
Self-Hosting Considerations
OSRM Deployment
# extract and prepare data
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-extract -p /opt/car.lua /data/region.osm.pbf
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-partition /data/region.osrm
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-customize /data/region.osrm
# run server
docker run -t -p 5000:5000 -v "${PWD}:/data" osrm/osrm-backend osrm-routed --algorithm mld /data/region.osrmValhalla Deployment
docker run -dt --name valhalla -p 8002:8002 \
-v $PWD/custom_files:/custom_files \
ghcr.io/gis-ops/docker-valhalla/valhalla:latestComparison Matrix
| Engine | Speed | Modes | Isochrones | Matrix | License |
|---|---|---|---|---|---|
| OSRM | Fastest | 3 | No | Yes | BSD |
| Valhalla | Fast | 4+ | Yes | Yes | MIT |
| GraphHopper | Fast | Custom | Yes | Yes | Apache |
| OpenRouteService | Moderate | 4+ | Yes | Yes | LGPL |
Notes
- OSRM is best for pure speed when you only need basic routing
- Valhalla is preferred when you need isochrones or multi-modal routing
- tidygeocoder (R) abstracts multiple geocoding providers with a unified interface
- Consider data freshness when self-hosting (OSM data updates regularly)
Appendix
Created: 2024-12-23 | Modified: 2024-12-23
See Also
Backlinks
(c) No Clocks, LLC | 2024