GPS-Koordinaten setzen
-
Hallo,
ich versuche über die API die GPS-Koordinaten eines Gebäudes zu setzen. Die API nimmt den Request mit 200 OK an, die Koordinaten werden aber nicht aktualisiert.
Request:
{ "jsonrpc": "2.0", "id": 1, "method": "cmdb.category.save", "params": {"apikey":"geheim", "object": 51, "data": {"gps": "7.123 53.123"}, "category":"C__CATG__LOCATION"} }
Antwort:
{ "id": 1, "jsonrpc": "2.0", "result": { "success": true, "message": "Category entry successfully saved", "entry": 3 } } Überprüfen:
{
"jsonrpc": "2.0",
"id": 1,
"method": "{{METHOD}}",
"params": {"apikey":"geheim", "objID":"51", "category":"C__CATG__LOCATION"}
}Antwort:
{ "id": 1, "jsonrpc": "2.0", "result": [ { "id": "3", "objID": "51", "location_path": "234", "parent": { "id": "234", "title": "Etage", "sysid": "FLOOR_1", "type": "C__OBJECT_TYPE__FLOOR", "type_title": "Floor", "location_path": "Ort> Haus> Etage" }, "option": null, "insertion": null, "pos": null, "gps": { "0": null, "1": null, "latitude": null, "longitude": null }, "latitude": null, "longitude": null, "snmp_syslocation": "", "description": "" } ] }
Im Sourcecode der API habe ich gesehen, dass verschiede GPS-Formate im String unterstützt werden sollten. Was mache ich falsch, oder wie lautet der richtige Weg, um Koordinaten zu setzen?
Danke für die Hilfe
Christian -
Hallo Christian,
den richtigen Weg kann ich dir gerade nicht nennen, aber hast du mal probiert den Wert über die GUi zu speichern und dann über die Abfrage ausgeben zu lassen? Vielleicht hilft dir die Rückgabe weiter, das passende Format für die Speicherung herauszufinden.
Liebe Grüße
Christian -
Hallo Christian,
ja, das habe ich getestet. In der GUI werden Längen- und Breitengrad in zwei Feldern eingegeben. Diese kann man über die API nicht beschreiben und bekommt als Antwort, die Variablen seien virtuell.
Wenn ich mir nach setzen der Koordinaten in der GUI das Ergebnis in der API unter "GPS" anschaue, dann habe ich dort die folgende Struktur:
"gps": {
"0": "51.123456",
"1": "7.1234567",
"latitude": "51.123456",
"longitude": "7.123456"
}Versuche ich diese Struktur zu beschreiben meldet die API:
"error": {
"code": -32603,
"message": "Internal error: There was an validation error",
"data": {
"gps": "(text) Property has to be a string value."
}Irgendwie scheinen die Koordinaten sehr speziell behandelt zu werden.
Viele Grüße
Christian -
Hallo @Chris-1,
Attribut "gps" ist ein JSON-Objekt mit den Keys "0" und "1", diese werden im Core für Funktionen genutzt.
Diese Keys entsprechen "latitude" und "longitude".
Daher ist es nur notwendig "latitude" und "longitude" zu setzen.{ "method": "cmdb.category.save", "params": { "object": 1122701989, "category": "C__CATG__LOCATION", "data": { "latitude": "51.2277411", "longitude": "6.7734556" }, "apikey": "h3md6u3y" }, "id": 1, "version": "2.0" }