UNPKG

s2-tools

Version:

A collection of geospatial tools primarily designed for WGS84, Web Mercator, and S2.

427 lines 24.6 kB
/** * # GBFS Geofencing Zones Schema V2.3 * Describes geofencing zones and their associated rules and attributes (added in v2.1-RC). * * ## Links * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v2.3/gbfs.md#geofencing_zonesjson) */ export const gbfsGeofencingZonesSchemaV23 = { $schema: 'http://json-schema.org/draft-07/schema', $id: 'https://github.com/MobilityData/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'], }; /** * # GBFS Geofencing Zones Schema V2.2 * Describes geofencing zones and their associated rules and attributes (added in v2.1-RC). * * ## Links * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v2.2/gbfs.md#geofencing_zonesjson) */ export const gbfsGeofencingZonesSchemaV22 = { $schema: 'http://json-schema.org/draft-07/schema', $id: 'https://github.com/MobilityData/gbfs/blob/v2.2/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.2', }, 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 GeoJSON Feature 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: 'number', minimum: 1450155600, }, end: { description: 'End time of the geofencing zone in POSIX time.', type: 'number', 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, }, }, required: ['ride_allowed', 'ride_through_allowed'], }, }, }, }, geometry: { description: 'A polygon that describes geofencing boundaries.', 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'], }; /** * # GBFS Geofencing Zones Schema V2.1 * Describes geofencing zones and their associated rules and attributes (added in v2.1-RC). * * ## Links * - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v2.1/gbfs.md#geofencing_zonesjson) */ export const gbfsGeofencingZonesSchemaV21 = { $schema: 'http://json-schema.org/draft-07/schema', $id: 'https://github.com/MobilityData/gbfs/blob/v2.1/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.1', }, 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 GeoJSON Feature 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: 'number', minimum: 1450155600, }, end: { description: 'End time of the geofencing zone in POSIX time.', type: 'number', 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, }, }, required: ['ride_allowed', 'ride_through_allowed'], }, }, }, }, geometry: { description: 'A polygon that describes geofencing boundaries.', 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'], }; //# sourceMappingURL=geofencingZones.js.map