Wie diese Android- App programmieren?
Hallo,
ich habe vor eine Android- App zu programmieren, welche anhand der genauen GPS Position des jeweiligen Endgerätes (Smartphone...) und den hinterlegten Zeiten des Soll- Fahrplans die aktuelle Verspätung in Echtzeit errechnen Soll.
Es geht um den ÖPNV.
Weiß jemand, wie man das am besten umsetzen kann?
Würde mich freuen.
1 Antwort
Aus GPS Koordinaten des aktuellen Standorts in longitude/latitude lassen sich mit etwas Trigonometrie Entfernungen zu beliebigen Punkten, wie z.B. Haltestellen mit bekannten Ankunfts-/Abfahrtzeiten, ebenfalls als longitude/latitude angegeben, errechnen. Berücksichtige, dass der Abstand zwischen zwei Längengraden abhängig vom Breitengrad ist, und in eine solche Berechnung einfließen muss.
Geschwindigkeit, ebenfalls beim Auslesen der Android API geliefert, kann bei der ungefähren Ermittlung der Ankunftszeit an der nächsten Haltestelle mit bekannten Zeiten mit einfließen. Verspätung ist dann die Differenz zwischen ermittelten und vorgegebenen Zeiten.
Zum Erhöhen der Genauigkeit kannst du den ebenfalls gelieferten Wert des Alters der letzten Positionsbestimmung verwenden, und mittels Geschwindigkeit und Bewegungsrichtung auf deine aktuelle Position interpolieren, denn die augenblickliche Position stimmt ja nicht mehr genau überein mit der Position, die zuletzt ermittelt wurde, diese kann bereits Sekunden oder auch Minuten zurückliegen, je nachdem, wie und wann du die Koordinaten abfrägst.
Ungefähr, jedenfalls, denn ein solches Interpolieren setzt ja uniforme Bewegung voraus (ohne Richtungs- und Geschwindigkeitsänderung). Mittels Auslesen der Beschleunigungssensoren ließe sich dessen Genauigkeit aber weiter erhöhen.
Eventuell enthält die Android API aber schon eine Funktion zur Abstandsermittlung zwischen zwei Koordinaten, da kann ich leider nicht auf Erfahrung zurückgreifen. Aber die "manuelle" Berechnung ist im Wesen auch nicht immens aufwändig.
Für eine ähnliche Berechnung benötigte ich erst etwa eine Stunde für die grobe Berechnung, dann vielleicht nochmal eine Stunde, um die Interpolierung dazu zu basteln, und nochmal etwa die gleiche Zeit, um dann den Vorzeichenfehler, der sich eingeschlichen hatte, zu finden.
Wäre das viel Aufwand und wie lange wird das dauern?