All Downloads are FREE. Search and download functionalities are using the official Maven repository.

schema.v2.3.geofencing_zones.geofencing_zones.json Maven / Gradle / Ivy

There is a newer version: 3.1.5
Show newest version
{
  "$schema": "http://json-schema.org/draft-07/schema",
  "$id":
    "https://github.com/NABSA/gbfs/blob/v2.3/gbfs.md#geofencing_zonesjson",
  "description":
    "Describes geofencing zones and their associated rules and attributes (added in v2.1-RC).",
  "type": "object",
  "properties": {
    "last_updated": {
      "description":
        "Last time the data in the feed was updated in POSIX time.",
      "type": "integer",
      "minimum": 1450155600
    },
    "ttl": {
      "description": "Number of seconds before the data in the feed will be updated again (0 if the data should always be refreshed).",
      "type": "integer",
      "minimum": 0
    },
    "version": {
      "description": "GBFS version number to which the feed conforms, according to the versioning framework.",
      "type": "string",
      "const": "2.3"
    },
    "data": {
      "description": "Array that contains geofencing information for the system.",
      "type": "object",
      "properties": {
        "geofencing_zones": {
          "type": "object",
          "description": "Each geofenced zone and its associated rules and attributes is described as an object within the array of features.",
          "properties": {
            "type": {
              "description": "FeatureCollection as per IETF RFC 7946.",
              "type": "string",
              "enum": ["FeatureCollection"]
            },
            "features": {
              "description": "Array of objects.",
              "type": "array",
              "items": {
                "title": "GeoJSON Feature",
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "enum": ["Feature"]
                  },
                  "properties": {
                    "description":
                      "Describing travel allowances and limitations.",
                    "type": "object",
                    "properties": {
                      "name": {
                        "description": "Public name of the geofencing zone.",
                        "type": "string"
                      },
                      "start": {
                        "description": "Start time of the geofencing zone in POSIX time.",
                        "type": "integer",
                        "minimum": 1450155600
                      },
                      "end": {
                        "description": "End time of the geofencing zone in POSIX time.",
                        "type": "integer",
                        "minimum": 1450155600
                      },
                      "rules": {
                        "description": "Array that contains one object per rule.",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "vehicle_type_id": {
                              "type": "array",
                              "description": "Array of vehicle type IDs for which these restrictions apply.",
                              "items": { "type": "string" }
                            },
                            "ride_allowed": {
                              "description": "Is the undocked ride allowed to start and end in this zone?",
                              "type": "boolean"
                            },
                            "ride_through_allowed": {
                              "description":
                                "Is the ride allowed to travel through this zone?",
                              "type": "boolean"
                            },
                            "maximum_speed_kph": {
                              "description": "What is the maximum speed allowed, in kilometers per hour?",
                              "type": "integer",
                              "minimum": 0
                            },
                            "station_parking": {
                              "description": "Vehicle MUST be parked at stations defined in station_information.json within this geofence zone",
                              "type": "boolean"
                            }
                          },
                          "required": ["ride_allowed", "ride_through_allowed"]
                        }
                      }
                    }
                  },
                  "geometry": {
                    "description":
                      "A polygon that describes where rides might not be able to start, end, go through, or have other limitations. Must follow the right-hand rule.",
                    "title": "GeoJSON MultiPolygon",
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": ["MultiPolygon"]
                      },
                      "coordinates": {
                        "type": "array",
                        "items": {
                          "type": "array",
                          "items": {
                            "type": "array",
                            "minItems": 4,
                            "items": {
                              "type": "array",
                              "minItems": 2,
                              "items": {
                                "type": "number"
                              }
                            }
                          }
                        }
                      }
                    },
                    "required": ["type", "coordinates"]
                  }
                },
                "required": ["type", "geometry", "properties"]
              }
            }
          },
          "required": ["type", "features"]
        }
      },
      "required": ["geofencing_zones"]
    }
  },
  "required": ["last_updated", "ttl", "version", "data"]
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy