Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Users
    • Search

    GPS-Koordinaten setzen

    Entwicklung
    3
    4
    226
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      Chris 1 last edited by

      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

      1 Reply Last reply Reply Quote 0
      • creiss
        creiss i-doit Kenner last edited by

        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

        NEU - i-doit und IT-Dokumentation bei YouTube: https://www.youtube.com/channel/UCK9fitbW5J1yhiDs5Dr3YQw
        Komplett-Strategie: https://i-doit-trainings.de/it-dokumentation-komplett-strategie/
        i-doit Mastery – https://i-doit-trainings.de/i-doit-mastery

        1 Reply Last reply Reply Quote 0
        • C
          Chris 1 last edited by

          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

          1 Reply Last reply Reply Quote 0
          • Michael Overkamp
            Michael Overkamp last edited by

            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"
            }
            
            1 Reply Last reply Reply Quote 0
            • First post
              Last post