Skip to content

Facilities

A facility is a specific, physical feature represented by a geographic point, polyline, or polygon. Facilities describe real‑world infrastructure or natural features that visitors interact with directly. They typically include man-made structures such as: parking lots, campgrounds, trailheads, buildings, and viewpoints, but they may also represent natural features such as lakes, beaches or mountains when those features are meaningful to the user experience.

A single facility may support zero, one, or many activities, and users may require permission to visit, stay at, or otherwise use certain facilities.

Facilities provide parental groupings for assets, which are the smallest spatial elements in the system.

Although facilities may resemble legacy BC Parks concepts, they are a distinct datatype within this data model and are not derived from any preexisting structure.

Relationship to Geozones

Facilities and geozones are both spatial concepts, but they serve different purposes: - Facilities represent physical objects or specific locations. - Geozones represent conceptual regions that group multiple facilities, activities, or features.

Even when a facility uses a polygon to describe its footprint, it remains a physical feature, not a regional grouping. This distinction keeps the spatial model clear, scalable, and easy to reason about.

Like geozones, facilities can be: - system‑defined (BC Parks infrastructure) - user‑defined (personal points or areas of interest)

Because facilities may belong to different audiences, they are grouped using collectionIds. - A facility in Strathcona Park (ORCS 1) → facility::bcparks_1

Properties

Note: The facility configuration file is the authoritative source for the current schema.

Property Type Description
pk String Partition key for the item. Always begins with facility::<collectionId>. Groups all facilities within a collection.
sk String Sort key uniquely identifying the item within the partition. Typically a combination of facilityType and identifier
schema String Item datatype/schema. Will always be 'facility' for facilities
globalId String UUID used for GSIs and cross‑collection lookups.
collectionId String Identifier linking the facility to its operational collection (e.g., bcparks_1).
facility Number Identifier uniquely distinguishing this particular facility from other facilities of the same type within the same collection
identifier Number See facilityId
facilityType String The type of facility the item represents. Some examples include "campground", "accessPoint", and "naturalFeature"
facilitySubType String If needed, a further categorization of the facilityType. Some examples of a "naturalFeature" might include a "lake", "summit" or "waterfall"
displayName String Human‑readable name of the item.
description String Optional descriptive text explaining the purpose or operational meaning of the item.
envelope OSGeo Bounding box containing 2D spatial geometry, if it exists.
boundary OSGeo Spatial footprint geometry, if it exists and small enough to be stored in DynamoDB.
boundaryUrl String Spatial footprint geometry, if it exists. Stored in S3 with a reference URL.
location OSGeo Geospatial point serving as the location of the facility, used for search relevance, sorting, clustering, and map pin placement
path OSGeo Spatial polyline geometry, if it exists and small enough to be stored in DynamoDB. Usually will refer to a trail or road.
pathUrl String Spatial polyline geometry, if it exists. Stored in S3 with a reference URL.
minMapZoom Number The smallest zoom level (furthest zoomed out) at which the object will render on a map if it is not in focus
maxMapZoom Number The largest zoom level (furthest zoomed in) at which the object will render on a map if it is not in focus
imageUrls [String] Array of urls of images of this data item
timezone String The IANA string timezone of the spatial data item
isVisible Boolean Whether or not this item will be returned if it generates a search hit
creationDate DateTime Timestamp of when the item was first created
lastUpdated DateTime Timestamp of when the item was last updated
version Number Data revision number
searchTerms String Comma-separated list of terms OpenSearch can use to link text searches to this data item
adminNotes String Administrative notes to describe the data, will never be surfaced to the public

Examples

Bedwell Lake Campground

{
  "pk": "facility::bcparks_1",
  "sk": "campground::1",
  "schema": "facility",
  "globalId": "23ertrg4-t54e-tyhr-ghnj-rer4323e543t",
  "collectionId": "bcparks_1",
  "facilityType": "campground",
  "facilitySubType": "",
  "facilityId": 1,
  "identifier": 1,
  "displayName": "Bedwell Lake Campground",
  "description": "Main Bedwell Lake campground on the edge of pristine Bedwell Lake. There are ### tentpads at this campground",
  "envelope": {
    "type": "envelope",
    "coordinates": [
      [-125.61, 49.51],
      [-125.60, 49.50]
    ]
  },
  "boundaryUrl": "s3://...",
  "location": {
    "type": "point",
    "coordinates": [
      -125.592,
      49.490
    ]
  },
  "path": {},
  "minMapZoom": 9,
  "maxMapZoom": 19,
  "imageUrls": [
    "https://...",
    "https://..."
  ],
  "timezone": "America/Vancouver",
  "isVisible": true,
  "creationDate": "2026-01-06T15:30:00.000Z",
  "lastUpdated": "2026-01-06T15:30:00.000Z",
  "version": 1,
  "searchTerms": "bedwell lake, baby bedwell lake, strathcona park...",
  "adminNotes": ""
}

Juan de Fuca Trail

{
  "pk": "facility::bcparks_9398",
  "sk": "trailSegment::1",
  "schema": "facility",
  "globalId": "2342fg4-r4rr-asf4-ytrt-rt345ertae543t",
  "collectionId": "bcparks_1",
  "facilityType": "trailSegment",
  "facilitySubType": "",
  "facilityId": 1,
  "identifier": 1,
  "displayName": "Juan de Fuca Trail",
  "description": "Coastal Trail on southwest Vancouver Island spanning from China Beach to Botanical Beach",
  "envelope": {
    "type": "envelope",
    "coordinates": [
      [
        -125.61,
        49.51
      ],
      [
        -125.60,
        49.50
      ]
    ]
  },
  "boundaryUrl": "s3://...",
  "location": {
    "type": "point",
    "coordinates": [
      -124.093,
      48.438
    ]
  },
  "path": {
    "type": "polyline",
    "coordinates": [
      [
        -124.093,
        48.438
      ],
      [
        -124.092,
        48.437
      ],
      [
        -124.091,
        48.436
      ]
    ]
  },
  "minMapZoom": 5,
  "maxMapZoom": 20,
  "imageUrls": [
    "https://...",
    "https://..."
  ],
  "timezone": "America/Vancouver",
  "isVisible": true,
  "creationDate": "2026-01-06T15:30:00.000Z",
  "lastUpdated": "2026-01-06T15:30:00.000Z",
  "version": 1,
  "searchTerms": "juan de fuca, china beach, chin beach, bear beach, sombrio beach, botanical beach, payzant...",
  "adminNotes": ""
}