$ account GIScience
Openrouteservice is a production-grade, open-source routing service built on a forked GraphHopper engine. It exposes a REST API (Spring Boot, JSON/GeoJSON/GPX) for directions, isochrones, matrix calculations, map matching, and graph export, supporting multiple transport profiles (car, foot, bike, wheelchair, heavy vehicle) with extensive customization via weightings (fastest, green, quiet, steepness, heat stress), edge filters (borders, areas, features, traffic), and real-time data integration from PostGIS. Architecturally, the project is modular: `ors-api` handles HTTP concerns and request/response DTOs, `ors-engine` contains the core routing algorithms and GraphHopper extensions, `ors-benchmark` provides Gatling-based load testing and coordinate generation tools, and `ors-test-scenarios` runs containerized integration tests. Advanced features include fast isochrones via graph partitioning (InertialFlow, contraction hierarchies), RPHAST for many-to-many matrices, and core routing with landmarks (ALT). Graph lifecycle management supports remote repository download (HTTP, Minio, filesystem) and hot-reload. While primarily an application, the repository incorporates data research elements: OSM data pipelines for tag filtering and elevation processing, statistical population queries for isochrones, and environmental routing indices (noise, shadow, green) sourced from CSV files. The codebase demonstrates strong engineering practices – modular design, extensive unit/integration tests, property-based testing, and a plugin system for extensible storages – though heavy customization of GraphHopper internals introduces maintenance risks and a moderate technical drift from upstream.