Geofence
Definition
A Geofence models the extent of a geofence.
Feature Structure
- Geofence objects are Feature objects
- Geofence objects MUST have an "id"member with aFEATURE-IDvalue
- Geofence objects MUST have a "feature_type"member with the value"geofence"
- Geofence objects MUST have a "geometry"member with aPOLYGONALvalue
Property Keys
| Property | Type | Description | 
|---|---|---|
| category | GEOFENCE-CATEGORY | The category that best describes the function of the Geofence | 
| restriction | nullorRESTRICTION-CATEGORY | The category that best describes a restriction that applies to the entire Geofence | 
| name | nullorLABELS | The official name for the Geofence as declared by the Venue Organization | 
| alt_name | nullorLABELS | Alternative name for the Geofence | 
| correlation_id | nullorUUID | Correlation ID shared among Geofences | 
| display_point | nullorDISPLAY-POINT | The curated location to use as the point-based representation of the Geofence | 
| building_ids | nullor JSON array ofBUILDING-ID | Unique identifier(s) of the Building(s) the Geofence possesses an explicitly defined relationship with | 
| level_ids | nullor JSON array ofLEVEL-ID | Unique identifier(s) of the Level(s) the Geofence possesses an explicitly defined relationship with | 
| parents | nullor JSON array ofGEOFENCE-ID | Unique identifier(s) of the Geofence(s) that this Geofence possesses an explicitly defined child→parent relationship(s) with | 
Example
{
  "id": "11111111-1111-1111-1111-111111111111",
  "type": "Feature",
  "feature_type": "geofence",
  "geometry": {
    "type": "Polygon",
    "coordinates": [
      [
        [100.0, 0.0],
        [101.0, 0.0],
        [101.0, 1.0],
        [100.0, 1.0],
        [100.0, 0.0]
      ]
    ]
  },
  "properties": {
    "category": "geofence",
    "restriction": "employeesonly",
    "name": {
      "en": "Employee Parking"
    },
    "alt_name": null,
    "correlation_id": null,
    "display_point": {
      "type": "Point",
      "coordinates": [100.0, 0.0]
    },
    "building_ids": ["2222222-2222-2222-2222-222222222222"],
    "level_ids": [
      "33333333-3333-3333-3333-333333333333",
      "44444444-4444-4444-4444-444444444444"
    ],
    "parents": null
  }
}
Property Capturing Rules
BUILDING_IDS
Building references are supported to enable the explicit association of a Geofence and one or more Building.
- MUST NOT contain duplicate entries
- MUST be assumed to apply to ALL Levels of a referenced Building, including all content within or associated with those Levels, unless constrained by explicit specification of "level_ids"
- MUST reference Buildings with Footprint geometries that are entirely or partially within the Geofence's polygonal geometry
LEVEL_IDS
Level references are supported to enable the explicit association of a Geofence and one or more Levels, typically for the purpose of constraining the applicable Levels of a Building declared in "building_ids".
- MUST NOT contain duplicate entries
- MUST be assumed to apply to ALL all content within, or associated with, the specified Level(s) OR the portion of those Level(s) that the Geofence's polygonal geometry overlaps
- MUST reference Levels with geometries that are entirely or partially within the Geofence's polygonal geometry
CORRELATION_ID
- MUST be present when the intent is to create an association between multiple Geofences
PARENTS
Parent references are supported to enable the creation of hierarchical Geofences where necessary.
- MUST NOT contain duplicate entries
- MUST NOT be self-referential
- MUST NOT introduce circular dependencies between Geofences