Zum Hauptinhalt springen

Geofences

Geofences sind eine Möglichkeit, einen virtuellen Perimeter um einen realen Bereich zu definieren. Yggio unterstützt Geofences als eigene API.

Um einen Geofence zu erstellen, müssen Sie eine POST-Anfrage an den Geofence-Endpunkt mit einem Body im folgenden Format senden: POST https://staging.yggio.net/api/geofences

{
"fence": {
"type": "Polygon",
"coordinates": [[
[13, 55],
[33, 55],
[33, 75],
[13, 75],
[13, 55]
]]
},
"ref": "<id of my device>", // optional
"refType": "device" // optional
}

Zu beachten ist, dass coordinates ein Array von Arrays von Punkten ist. Aktuell wird nur ein einzelnes einfaches Polygon unterstützt. Das Polygon muss immer gegen den Uhrzeigersinn verlaufen, und die Punkte werden zuerst mit dem Längengrad angegeben ([longitude, latitude]).
ref und refType sind optional und können verwendet werden, um den Geofence mit einem Gerät zu verknüpfen. ref ist die ID des Geräts und refType ist der Typ der Referenz. Aktuell wird nur device unterstützt.

Weitere Details zu den Geofence-Routen finden Sie in unserem Swagger.

Geräte​

Yggio unterstützt außerdem Geofencing für Geräte. Wenn ein Gerät eine GPS-Position hat (als Eigenschaft lnglat am Gerät, nach dem GeoJSON-Format), kann danach gesucht werden, indem die reguläre iotnodes-API mit einem geoquery-Querystring aufgerufen wird. Aktuell werden nur Polygone unterstützt.
Der geoquery-Querystring besteht aus einem Typ und Koordinaten, oder einer ID eines Geofence. Aktuell muss der Typ contains sein. contains bedeutet, dass der Gerätepunkt vollständig innerhalb des Geofence liegen muss.

Beispiel für einen geoquery-contains-Querystring:
GET https://staging.yggio.net/api/iotnodes?geoquery=type:contains;coordinates=[[13,55],[33,55],[33,75],[13,75],[13,55]] Beachten Sie, dass der letzte Punkt in den Koordinaten mit dem ersten Punkt übereinstimmen muss, um das Polygon zu schließen.

Beispiel für einen geoquery-id-Querystring:
GET https://staging.yggio.net/api/iotnodes?geoquery=id:203981cd5a19c81efac16a4f

Dies ist ein Beispiel eines Geofence-Geräts

{
"orionId": {
"id": "000a0a00a000000d0a00000a",
"type": "Device",
"servicePath": "/"
},
"access": "exit",
"assets": 0,
"trackers": 0,
"assetList": [
{
"assetAccess": "exit",
"assetName": "Door",
"assetPosition": {
"type": "Point",
"coordinates": [
-000.00000000000000,
00.00000000000000
]
},
"assetId": "0000aa000aa0aa0000aa000a",
"assetTimestamp": "2025-04-28T16:38:25.321Z",
"assetIsGeofenceTracker": false
}
],
"prevReportedAt": "2025-03-05T08:34:12.756Z",
"assetUpdate": {
"assetAccess": "exit",
"assetState": "inside",
"assetName": "Door",
"assetPosition": {
"type": "Point",
"coordinates": [
-000.00000000000000,
00.00000000000000
]
},
"assetId": "0000aa000aa0aa0000aa000a",
"assetTimestamp": "2025-04-28T16:38:25.321Z",
"assetIsGeofenceTracker": false
}
}