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 a FEATURE-ID value
  • Geofence objects MUST have a "feature_type" member with the value "geofence"
  • Geofence objects MUST have a "geometry" member with a POLYGONAL value

Property Keys

Property Type Description
category GEOFENCE-CATEGORY The category that best describes the function of the Geofence
restriction null or RESTRICTION-CATEGORY The category that best describes a restriction that applies to the entire Geofence
name null or LABELS The official name for the Geofence as declared by the Venue Organization
alt_name null or LABELS Alternative name for the Geofence
correlation_id null or UUID Correlation ID shared among Geofences
display_point null or DISPLAY-POINT The curated location to use as the point-based representation of the Geofence
building_ids null or JSON array of BUILDING-ID Unique identifier(s) of the Building(s) the Geofence possesses an explicitly defined relationship with
level_ids null or JSON array of LEVEL-ID Unique identifier(s) of the Level(s) the Geofence possesses an explicitly defined relationship with
parents null or JSON array of GEOFENCE-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