The Location Service driver collects the responses of locatable modules in the same system and returns this as the result of a location search.
Response types
The frontend translates the search responses into a pin on a map. These are the supported formats:
X,Y Location
Such as a location calculated by a wireless network
{
"location": "wireless",
"coordinates_from": "bottom-left",
"x": 27.113065326953013,
"y": 36.85052447328469,
"lon": 55.27498749637098,
"lat": 25.20090608906493,
"mac": "66e0fd1279ce",
"variance": 4.5194575835650745,
"last_seen": 1601555879,
"building": "zone-EmWLJNm0i~6",
"level": "zone-Epaq-dE1DaH",
"map_width": 1234.2,
"map_height": 123.8,
# driver can include additional data to help with debugging
"meraki_floor_id": "g_727894289736675",
"meraki_floor_name": "BUILDING Name - L2"
}
Map Feature
Such as a desk
{
"location": "desk",
# the count of people at the location, desks will typically be 0 or 1
# however other location types could have more
"at_location": 1,
"map_id": "desk-4-1006",
"level": "zone_1234",
"building": "zone_1234",
# if provided can be used to look up user details
"mac": "66e0fd1279ce",
# provided if known
"capacity": 1
}
Desks highlight based on desk metadata stored against each level zone:
Where bookable is false, desks highlight based on sensor data
NOTE:: no metadata is required for area locations assuming there is a matching map_id, in which case the highlighting is based on the used capacity (low, medium or high)
Booking
Such as an event in a meeting room
[{
"location": "meeting",
"mac": "meeting2.city1@resource.org.com",
"event_id": "meet-1234567",
"map_id": "map-1234",
"sys_id": "sys-id",
"ends_at": 1234567,
"private": false,
"level": "zone-GAgFNk8vm67",
"building": "zone-GAf3dfZq80~"
},
# Or for a desk or car-space booking etc
# where the asset ID is the map id
{
"location": "booking",
"checked_in": false,
"asset_id": "desk-4-1006"
"booking_id": "booking-4567",
"building": "zone_1234",
"level": "zone_1234",
"ends_at": 1234567,
"mac": "placeos-user-id",
"staff_email": "bob@tmart",
"staff_name": "Bob Jane"
}]
Lockers
Any lockers that are in use on the floor
{
"location": "locker",
"bank_id": "bank-id",
"locker_id": "locker-id",
"allocated": true,
"building": "zone_1234",
"level": "zone_1234",
# if the locker booking expires
expires_at: 1234567,
# something we can use to look up the user, might not be available
"mac": "bank-id-locker-id-etc"
}