
Forum
Diese Foren dienen dem Austausch und der Unterstützung der Entwicklungspartner für GPSoverIP/DATAoverIP und HLD.
Nutzen Sie diese zur direkten Kommunikation mit dem Entwicklungsteam der GPSoverIP GmbH und anderen Entwicklern. Anfragen über die Foren werden mit erhöhter Priorität bearbeitet.
Achten Sie bitte bei der Kommunikation auf die Netiquette, um allen Beteiligten die Arbeit mit den Foren zu erleichtern.
Probleme beim Abfragen der Fahrzeugpositionen über die API
Sehr geehrte Damen und Herren,
aus Mangel an anderen Informationen, gehe ich von einem Beispiel auf Ihrer Webseite aus:
https://www.gpsauge.de
Anbindung --> API --> Öffentliche Module --> Devices, Fahrzeugortung und Status --> mehr Infos --> Abrufen der Position inkl. Fahrer und Status (mode=cars|contacts|positions)
<?php
include("./include/gpsapi/apiutils.php";
$arr = array();
$arr["module"] = "devices";
$arr["action"] = "get";
$arr["user"] = "user";
$arr["pwd"] = "geheim";
$arr["mode"] = "positions";
$arr["deviceid"] = "123456";
$arr["nameonly"] = "0";
$arr["format"] = "json";
$arr["plainpos"] = "1";
$result = apiGetData($arr);
$result = apiUnzip($result);
if (apiReturn($result))
echo "SUCCESS!";
else
echo "ERROR";
?>
Ich habe diese API in ein kleines Programm eingebaut und Folgendes festgestellt:
Folgende Parameter funkionieren nicht:
$arr["action"] = "get";
$arr["mode"] = "positions";
$arr["deviceid"] = "213059";
$arr["nameonly"] = "0";
$arr["plainpos"] = "1";
Service Url laut Ihrer Webseite: https://live.apioverip.de
Diese URL stimmt nicht!
Die richtige URL lautet: https://www.apioverip.de
Hier ein Ausschnitt aus einem php Programm, das funktioniert:
<?php
$url = "https://www.apioverip.de/";
$user = "253483";
$pwd = $GPSAUGEKEY;
$arr = array();
$arr["module"] = "devices";
$arr["action"] = "list";
// $arr["action"] = "get"; // geht nicht
$arr["user"] = $user;
// $arr["mode"] = "positions"; // geht nicht
// $arr["plainpos"] = "1"; // geht nicht
$arr["pwd"] = $pwd;
$arr["nozlib"] = "1";
$arr["format"] = "json";
$qs = http_build_query($arr);
$url = $url . '?' . $qs;
echo $url . PHP_EOL . PHP_EOL;
// get the json response
$resp_json = file_get_contents($url);
$myfilename = 'GPSauge_test.json';
file_put_contents($myfilename, $resp_json);
?>
Allerdings liefert mir dieses Programm alle möglichen Informationen zurück, nur die, die ich benötige, sind nicht enthalten:
- aktuelle Position von jedem Fahrzeug in Längen- und Breitengrad:
lat=49.27193
lon=7.16456
49.27193, 7.16456
Damit kann ich in Google, Openstreetmap, Bing, here die Position anzeigen und navigieren. Ich kann sogar ohne großen Aufwand eine Suche im einem gewissen Radius starten und die optimale Route berechnen. Bei 20 Tourenstopps spielt das Travelling Salesman Problem keine Rolle.
Ist es möglich, eine gültige Beschreibung der API Parameter zu bekommen, da die Angaben auf Ihrer Website nicht stimmen.
Ist es möglich, in der json Datei die aktuellen Länge- und Breitengrade wie oben beschrieben pro Fahrzeug zu erhalten?
Mit freundlichen Grüßen
Dieter S.
Sehr geehrter Herr Steffen,
der Abruf der Live-Positionen Ihrer GPSaugen erfolgt wie in der
Dokumentation beschrieben via:
Über diese URL erhalten Sie die aktuelle Position aller GPSaugen in
Ihrem GPS-Account. Die Domain live.apioverip.de ist durchaus korrekt.
Sofern Sie nicht die Hilfsbibliothek APIUtils verwenden, so können Sie
die URL einfach um einen weiteren URL-Parameter erweitern:
&nozlib=1
Dieser Parameter bewirkt, dass der Response nicht komprimiert wird und
somit direkt geparsed werden kann.
Über den optionalen Parameter
&deviceid=[GPSaugeID]
können Sie die Abfrage auf ein bestimmtes GPSauge eingrenzen. Beachten
Sie bitte, dass dieses GPSauge Ihrem GPS-Account natürlich auch
zugeordnet sein muss.
Schöne Grüße,
Ihr GPSoverIP Entwickler-Team.
Sie haben noch Fragen? Jetzt unverbindlich beraten lassen!
Nehmen Sie Kontakt mit uns auf
Geben Sie Ihre Telefonnummer an, wenn Sie einen Rückruf wünschen.