You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
safe-bike-routing/README.md

43 lines
1.8 KiB
Markdown

# safe-bike-routing
OpenRouteService Frontend mit `avoid_polygons` abgeleitet aus der [Fahrrad-Unfallstatistik 2019][opendata].
Der `dist` Ordner kann einfach auf xbeliebigem Webserver deployed werden.
Bitte einen eigenen ORS API-Key nutzen.
## build
```
git clone https://git.nroo.de/norwin/safe-bike-routing
npm install
npm run build
```
## avoid_polygons
Das Routing basiert auf einem `avoid_polygons` Datensatz, den ich aus der Unfallstatistik abgeleitet habe.
Die Schritte dazu sind:
- `wget https://unfallatlas.statistikportal.de/app/UnfalldatenDownload/Unfallorte2019_LinRef_Shapefile.zip`
- In QGIS öffnen
- Layerfilter: `"IstRad"=1`
- QGIS Processing Toolbox `DBSCAN clustering`
- min clustersize = 6
- max distance = 20 meters
- Ergebnis Layerfilter: `CLUSTER_ID>=0`
- QGIS Processing Toolbox `Buffer`
- distance = 15 meters
- dissolve = true
- QGIS Processing Toolbox `Simplify`
- tolerance = 10 meters
- export as GeoJSON
- coordinate precision: 6
> Dem geneigten Routing-Nerd wird auffallen, dass sich dieses Problem besser als mit Polygonen lösen lässt:
> Die vernünftige Lösung ist die Unfälle auf ein (OSM-) Straßennetz zu map-matchen und jedem Straßensegment entsprechend ein Gewicht hinzuzufügen, das beim Routing berücksichtigt wird. Dadurch werden auch Stellen mit geringerer Unfallmenge als dem Schwellwert berücksichtigt, und das Unfallrisiko adequat mit anderen Routing-Parametern verrechnet.
> Dieses Projekt setzt aber auf die deutlich einfachere Lösung, denn es war nur kurzer Zeitvertreib für den ich keinen eigenen Routing Server betreiben will.
## license
- `src/`: UNLICENSE
- `dist/gefaehrliche_kreuzungen_2019.json`: Lizenz unbekannt? Basierend auf [destatis open data][opendata].
[opendata]: https://unfallatlas.statistikportal.de/_opendata2020.html