Interaktiver Fahrplan
Anwendungsbeispiel:
Eine öffentliche Institution äußerte den Wunsch, einen interaktiven Netzplan im Internet darzustellen. Das nachfolgende Beispiel erläutert, wie dies umgesetzt wurde. In manchen Bereichen könnte es interessant sein, die gewonnenen Positionsdaten von Objekten auch für Dritte zur Verfügung zu stellen. Dies kann über die von der GPSoverIP bereitgestellten API auf verschiedenster Weise erfolgen. Im nachfolgendem Auszug wird ein Beispiel gezeigt, in dem sowohl Positionsdaten als auch fahrzeugspezifische Informationen in zwei Webseite eingebunden und dargestellt werden. Die entstandenen Webseiten können unter folgenden Links betrachtet werden:
http://stadtwerke.24stundenonline.de/
https://buslinien-schweinfurt.de/
Die Informationen können hierbei ohne Nutzername und Passwort abfragt werden. Somit ist es möglich eine App für alle Gäste zu schreiben.
In diesem Fall liefert der Dienst Fahrzeug-Id, Positionsdaten, Fahrtrichtung und Zeitstempel.
Die Abfrage zur Positionsermittlung erfolgt mit der nachfolgenden Anfrage:
Anfrage:
http://live.apioverip.de/stadtwerke_positions.json
Aus der darauffolgende Antwort können dann die gewünschten Daten in Verbindung mit den Kennziffern (id, WE, NS, dir etc.) entnommen werden. Hier ist die Groß-/Kleinschreibung zu beachten!
Antwort:
[{"id":"217789","WE":10.239348,"NS":50.030888,"dir":234,"speed":44.8,"ts":"2015-09-08 06:48:41","unix_ts":1441694921,"matrix_id":"-2"}]
Kennziffer-Tabelle:
id - Fahrzeug-Id
WE - Longitude (Position)
NS - Latitude (Position)
dir - Direction (Richtung). Zeigt die Fahrtrichtung des Fahrzeugs. max 359
ts - Timestamp (Zeitstempel). Zu welchem Zeitpunkt fand die Bewegung statt.
unix_ts - Selbe wie obere Zeitstempel nur im unix Format
Diese Anfrage kann im Sekundentakt gesendet werden, wodurch die Bewegungen in Echtzeit dargestellt werden können.
Speziell im hier gezeigten Beispiel wurden desweiteren Marker-Position für Haltestellen integriert. Um diese Markepositionen bzw. Haltestellen anzufragen, wird eine weitere API zur Verfügung gestellt, deren Anfrage nachfolgend ebenfalls beschrieben ist:
Anfrage:
Die Antwort für die Haltestellen (Marker) sieht wie folgt aus:
Antwort:
[{"geoobjectid":"84284595","name":"@23456","address1":"","address2":"","information":"","type": "marker","category":"","description":"","street":"","housenumber":"","code":"","country":"DE","city": "???","mobile":"","email":"","phone":"","uniqueid":"@23456","lat":"-9.846000","lon":"","distance": "","ts":"2012-04-23 13:11:09","deviceid":602621,"deadline":"","businesshourstart1": "","businesshourstop1":"","businesshourstart2":"","businesshourstop2":"","addressaddition":
"","points":""}]
Um die Information des anzufahrenden Ziels von der VDV 300-Schnittstelle entgegen zu nehmen, welches über das CANoverIP-Protokoll übermittelt wird, nutzt man das Modul „Devices“ mit der Action „get“ bzw. „list“.
Bei der Aktion „get“ wird zusätzlich noch der Parameter „mode“ mitgegeben. „Mode“ steht für „Modus der Verarbeitung“. Mit dem mode: contacts, werden neben dem anzufahrenden Ziel (Endhaltestelle), auch Positions- und Statusinformationen übergeben. Sofern gewünscht können zudem noch Informationen zum Fahrer geliefert werden.
Nachfolgend wird die Anfrage hierzu in tabellarischer Form dargestellt:
Anfrage:
module: fms
action: get
nozlib: 1
format: json
deviceid: (Angabe der GeräteIDs)
fields: stadtwerke_sw_aussenanzeige,stadtwerke_sw_liniennummer,stadtwerke_sw_kursnummer
user: (gpsaccount der Stadtwerke Schweinfurt)
pwd: (md5-passwort)
Die Antwort sieht dann wie folgt aus:
{"return":"-1","fields":{"stadtwerke_sw_liniennummer":"52","stadtwerke_sw_kursnummer":"54",
"stadtwerke_sw_aussenanzeige":"DEUTSCHHOF"},"fzgid":217769,"ts":"2015-03-02 14:51:55","fmsts":"2015-03-02 14:51:55"}