SpatialInterfacePoseAttribute
HTTP API schema
Live position of a located device (for example a robot vacuum) on a map. Unlike position, which labels a group, pose is where the device is now. point is a GeoJSON Point whose coordinates are [x, y] in metres in the frame named by relativeToGroupRouteId; heading and the other fields sit beside point, not inside it. The spatial/geometry attribute of the room groups (group_query over MCP, or GET /endpoint-groups with expand=interfaces.attributes over REST) carries the same relativeToGroupRouteId value, and the pose and the room shapes share one frame and unit, so they overlay with no conversion. containedInRoomGroupRouteId already names the room the device is in. A docked device is at its charger, so its point is the charger position and it reports no heading. A device whose location is not known reports no pose.
SpatialInterfacePoseAttribute fields
- pointSpatialPointRequired
- heading
number Direction the device faces in degrees, from 0 to 360 (a provider reports 0 up to but not including 360). 0 points along the frame's positive x axis and the angle grows counter-clockwise when the y axis points up (the convention of the coordinate system the point uses). Omitted when the provider has no current heading, such as for a docked device at its charger.
format: "float"
minimum: 0
maximum: 360
- relativeToGroupRouteId
stringRequired Provider group route (the plugin's own route id of the active map or floor group) whose coordinate system the point uses. Geometry on groups from group_query carries the same value, so equal values share one frame and point can be located in that geometry. A pose and a geometry with different values use different frames and must not be compared.
- containedInRoomGroupRouteId
string Group route of the room that contains point on the device's map, the id a room carries in group_query. Omitted when the point is in no mapped room or the room could not be read.
- observedAt
stringRequired When the provider observed this pose
format: "date-time"