ADR › Auswahl einer Routen/Maps-API
status |
proposed |
date |
2023-04-16 |
deciders |
Leonard Pelzer, Patrick Raul Lang |
consulted |
- |
informed |
- |
Kontext und Problemstellung
Ein zentrales Element des Systems ist die Planung und Begleitung von ÖPNV-Reisen. Hierfür muss das System eine Routenplanung und Navigation anbieten. Hierzu ist eine API zum Abfragen möglicher Routen nötig. Zusätzlich muss eine Karte in das System integriert werden.
Entscheidungstreiber
- Funktionale und nicht-funktionale Anforderungen aus Konzeptphase
- Kosten
In Betracht gezogene Optionen
Ergebnis der Entscheidung
Gewählte Option: “Here Maps”, weil
Here Maps eine extra API für die Berechnung von ÖPNV-Routen (HERE Public Transit API) anbietet, die viele Einstellungsmöglichkeiten bei der Berechnung einer Route bietet. Zusätzlich kann das Here SDK verwendet werden, um die Karte in das System zu integrieren. Es gibt ein kostenloses Kontingent an API-Anfragen.
Mögliche Alternative/Fallback: “Google Maps Platform”, weil Google Maps eine ähnliche Grundlage wie Here Maps bietet. Es gibt keine extra API für den ÖPNV und kein Studio für die Anpassung der Karte. Das SDK unterstützt JS, Android, IOS und HTML.
Pro und Kontra der Optionen
- Gut, weil viele APIs zur Berechnung von Routen (Directions API, Distance Matrix, Routes API)
- Gut, weil Routen API folgende ÖPNV-Modi unterstützt: bus, subway, train, tram, rail
- Gut, weil maps SDK für JS, Android, IOS, HTML
- Gut, weil 200$ monatliches Guthaben für APIs kostenlos
Here Maps
- Sehr gut, weil eigene Transit-API mit vielen Einstellungsmöglichkeiten (Eine Beispiel-Abfrage befindet sich im FigJam-Board)
- Besteht aus folgenden TeilAPIs: Public Transit Routing API, Public Transit Next Departures API, Public Transit Station Search API
- Gut, weil Maps SDK für IOS, Android und Flutter
- Gut, weil freies moantliches Kontingent für Entwicklung
- Gut, weil zusätzliche WeatherAPI
- Gut, weil Here Studio für eine einfache Anpassung der Karte ohne Code
Mapbox
- Gut, weil Maps SDK
- Gut, weil Mapbox Studio für eine einfache Anpassung der Karte ohne Code
- Gut, weil kostenloses Kontingent
- Schlecht, weil keine Unterstützung von ÖPNV (sondern nur driving-traffic, driving, cycling, walking)
- Gut, weil Maps SDK
- Gut, weil Basic-Key mit kostenlosem Kontingent
- Gut, weil Routen-API mit Dokumentation, welche ÖPNV-Unternehmen über die API abgefragt werden
Mögliche Probleme und Fallbacks
- Keine Live-Daten:
- Beschreibung: Es ist nicht erkennbar, wie aktuell die Daten der Here-API sind. Es ist aber davon auszugehen, dass diese Daten keine Verspätungen oder spontane Ausfälle beinhalten. Hierfür muss im besten Fall eine weitere API eingebunden werden, um die aktualität der Daten zu verifizieren.
- Fallback: Eigene Daten mit eigens entwickelter API simulieren.
- Unterstützte Programmiersprachen der Here Maps SDK passen nicht zu System-Architektur:
- Beschreibung: Die Integration der Karte in eine Web-Anwendung kann nur mit Flutter erfolgen.
- Fallback: Verwendung der Google Maps Platform
Alle gesammelten Informationen und weitere Links sind im FigJam-Board dokumentiert.