Distance map for German motorways to nearest eligible HPC chargers.
- Graph data: GraphHopper cache built from Germany OSM PBF
- Compute core: JVM offline engine (
distance-core) running multi-source Dijkstra on GraphHopper graph cache - Orchestration: Python pipeline (
pipeline/run_pipeline.py) - Outputs:
hpc_distance_segments*.geojsonhpc_distance*.mbtileshpc_sites*.geojsonrun_metadata*.json
- Rendering: MapLibre distance vector tiles + clustered HPC GeoJSON
- Python 3.9+
- Java 17+
- GraphHopper
graphhopper-web-11.0.jarintools/graphhopper/ - Germany PBF at
data/raw/osm/germany-latest.osm.pbf tippecanoefor MBTiles generation
Mac/Linux:
docker compose up graphhopper --remove-orphansWindows:
powershell -ExecutionPolicy Bypass -File .\scripts\start_graphhopper.ps1This imports once and reuses tools/graphhopper/graph-cache/ on subsequent starts.
Mac/Linux:
python -m pipeline.run_pipeline --config config/default.yamlWindows:
powershell -ExecutionPolicy Bypass -File .\scripts\run_pipeline.ps1Docker:
docker compose run --rm pipelinedocker compose up --build api tileserver frontend- API:
http://localhost:8000 - Tile server:
http://localhost:8080 - Frontend:
http://localhost:5173
- Legacy Overpass/sample-point/candidate-preselection route code is removed from pipeline flow.
- HPC MBTiles output is removed; HPC stations are served as GeoJSON for frontend clustering.
distance-corecurrently runs viadistance-core/run_distance_core.sh(Linux/macOS) orscripts/run_distance_core.ps1(Windows).- Gradle wrapper files are scaffolded; if you need wrapper-based build/test commands, generate
distance-core/gradle/wrapper/gradle-wrapper.jaronce via local Gradle (gradle wrapper --gradle-version 8.10.2).