High-performance C++ routing engine that computes routes, distance tables, GPS map matching and more on OpenStreetMap data.
GIScience/openrouteservice
Open source routing engine in Java offering directions, isochrones, matrix, and snapping services built on OpenStreetMap data.
Open-source alternative to:Google Maps Platform Directions API
- Stars
- 1,990
- Forks
- 488
- Open issues
- 177
- Last commit
- yesterday
What is it?
Openrouteservice is a route planning backend written in Java. It is built on a forked and edited version of GraphHopper 4.0 and uses free geographic data from OpenStreetMap to serve spatial queries for multiple modes of transport.
The service exposes HTTP endpoints for directions between locations, isochrones showing areas reachable within a given time or distance, one-to-many, many-to-one and many-to-many time and distance matrices, snapping coordinates to the road network, and exporting the base routing graph. Health and status endpoints are available when you run your own instance.
It is distributed as a Docker image, and a docker-compose setup is provided so a local instance can be started with example OSM data. Documentation covers running the service, the API reference, and the Swagger UI for local testing.
Key features
- 01Directions for different modes of transport
- 02Isochrones showing reachable areas from given locations
- 03One-to-many, many-to-one and many-to-many time and distance matrices
- 04Snapping coordinates to the road network
- 05Exporting the base routing graph
Use cases
- Adding routing and travel-time calculations to a web or mobile map application
- Computing service areas or catchments with isochrones
- Building logistics or fleet tools that need distance and time matrices
- Running a self-hosted routing API on OpenStreetMap data
Quick start
- 1
Create data directories
mkdir -p ors-docker/config ors-docker/elevation_cache ors-docker/graphs ors-docker/files ors-docker/logs - 2
Download the latest docker-compose.yml
wget https://github.com/GIScience/openrouteservice/releases/latest/download/docker-compose.yml - 3
Start openrouteservice in the background
docker compose up -d - 4
View the container logs
docker compose logs
Things to know
- Licensed under GPL-3.0, a copyleft license that requires derivative works to be open-sourced under the same terms.
- The default setup uses only a small test OpenStreetMap extract for Heidelberg, so you must supply your own OSM data for other regions.
- Running your own instance requires Docker and self-hosting effort; the health and status endpoints are not on the public live API.
Topics
FAQ
- What is openrouteservice?
- Open source routing engine in Java offering directions, isochrones, matrix, and snapping services built on OpenStreetMap data. Openrouteservice is a route planning backend written in Java. It is built on a forked and edited version of GraphHopper 4.0 and uses free geographic data from OpenStreetMap to serve spatial queries for multiple modes of transport.
- Is openrouteservice free to use? What license does it have?
- openrouteservice is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is openrouteservice still maintained?
- Actively maintained. The last commit to openrouteservice was on Nov 6, 2026.
- What can I use openrouteservice for?
- Adding routing and travel-time calculations to a web or mobile map application Computing service areas or catchments with isochrones Building logistics or fleet tools that need distance and time matrices Running a self-hosted routing API on OpenStreetMap data
- How do I install openrouteservice?
- Create data directories: mkdir -p ors-docker/config ors-docker/elevation_cache ors-docker/graphs ors-docker/files ors-docker/logs Download the latest docker-compose.yml: wget https://github.com/GIScience/openrouteservice/releases/latest/download/docker-compose.yml Start openrouteservice in the background: docker compose up -d View the container logs: docker compose logs
- Where can I get openrouteservice?
- The source code and installation instructions are on GitHub: https://github.com/GIScience/openrouteservice
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open source routing engine for OpenStreetMap, usable as a Java library or a standalone web server for route, isochrone and map matching queries.
Open-source geocoding service that searches OpenStreetMap data by name and address and performs reverse geocoding.
Generates Minecraft worlds from real-world locations using OpenStreetMap data and elevation terrain, for Java, Bedrock and Luanti.
Open source multi-modal trip planner server for scheduled public transit combined with biking, walking, bike share and ride hailing.
An open-source browser globe that layers live flights, ships, satellites, quakes, traffic and public cameras on photorealistic 3D terrain, with voice control.