Skip to content

Kalender Open Street Maps Anbindung

Was ist OSM?

Open Street Map ist eine open source Alternative für Karten, die ähnlich wie Wikipedia funktioniert: Jeder mit einem Account kann die Karte verändern (OpenStreetMap about).

Die Seite https://www.openstreetmap.org/ hat keine Unterstützung für Räume. Dafür müssen andere Viewer wie IndoorEqual oder OSMApp genutzt werden. Wir nutzen OSMApp.

Jeder Raum hat ein "ref", in den typischerweise die Raumerkennung eingetragen wird. Darüber kann man den Raum finden. Dazu besitzt jeder Raum eine einzigartige Id. Mit der Id kann der Link zu OSMApp erstellt werden.

Beispielraum Exer / Salzdahlumer Straße:

indoor 	room
level 	2
name 	252 Hörsaal
ref 	WF-EX-2/252
room 	lecture
id      1435503585

---

indoor 	room
level 	0
name 	Hörsal A026
ref 	A026
room 	lecture
id      1446092724

Refs erhalten

Die Refs und Ids erhalten wir mit einem API Request an OverpassTurbo Query – eine Seite, die ermöglicht Queries über die OSM Daten laufen zu lassen.

Setzt man die Id in "https://osmapp.org/way/:id" ein, kommt man direkt zu dem Raum (z. B. WF-EX-2/252: https://osmapp.org/way/1435503585).

Eigene Räume erstellen

Welche Tools man nutzen kann und wie der aktuelle Status des Mappings ist, wird auf diesem Pad dokumentiert.

Es ist beim Mapping wichtig, dass die "ref" des Raums mit dem Namen übereinstimmen, der von der Ostfalia für die Stundenpläne gegeben wird.

Github Actions Workflow

Jeden Tag werden von einer GitHub Action über die Overpass API die Raumdaten angefragt und falls sie sich verändert haben, wird ein Pull-Request erstellt. Die Raumdaten sind im JSON-Format unter /server/assets/overpassOSMRoomsData.json gespeichert. Der Workflow ruft den script /server/scripts/getLocationLinks.sh auf.

Der Workflow sorgt also dafür, dass jeden Tag um 05:00 die OSM-Daten aktualisiert werden, also kann es bis zu 24 Stunden dauern, bis gelöschte Räume nicht mehr im Kalender verlinkt werden oder neu gemappte Räume im Kalender erscheinen.