Geofences
Geofences are a way to define a virtual perimeter around a real-world area. Yggio supports Geofence as its own API.
To create a geofence, you need to send a POST request to the geofence endpoint with a body with the following format:
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
}
To note, the coordinates is an array of arrays of points. Currently we only support a single simple polygon. The polygon must always be counter-clockwise and the points are longitude first ([longitude, latitude]).
The ref
and refType
are optional and can be used to link the geofence to a device. The ref
is the id of the device and the refType
is the type of the reference. Currently only device
is supported.
More details on the specifics of the geofence routes can be found on our swagger.
Devices
Yggio also supports geofencing for devices. If a device has a GPS position (as the property 'lnglat' on the device, following the GeoJSON format) it can be sought after by calling the regular iotnodes API with a geoquery
querystring. Currently only polygons are supported.
The geoquery
querystring consists of a type and coordinates, or an id of a geofence. Currently, the type must be contains
. contains
means the device point must be entirely inside the geofence.
Example of a geoquery
contains querystring:
GET https://staging.yggio.net/api/iotnodes?geoquery=type:contains;coordinates=[[13,55],[33,55],[33,75],[13,75],[13,55]]
Do note that the last point in the coordinates must be the same as the first point to close the polygon.
Example of a geoquery
id querystring:
GET https://staging.yggio.net/api/iotnodes?geoquery=id:203981cd5a19c81efac16a4f