s2-tools
Version:
A collection of geospatial tools primarily designed for WGS84, Web Mercator, and S2.
537 lines • 30 kB
JavaScript
/**
* # GBFS Station Information Schema V3.1-RC
* List of all stations, their capacities and locations. REQUIRED of systems utilizing docks.
*
* ## Links
* - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.1-RC/gbfs.md#station_informationjson)
*/
export const gbfsStationInformationSchemaV31RC = {
$schema: 'http://json-schema.org/draft-07/schema',
$id: 'https://github.com/MobilityData/gbfs/blob/v3.1-RC/gbfs.md#station_informationjson',
description: 'List of all stations, their capacities and locations. REQUIRED of systems utilizing docks.',
type: 'object',
properties: {
last_updated: {
description: 'Last time the data in the feed was updated in RFC3339 format.',
type: 'string',
format: 'date-time',
},
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 (added in v1.1).',
type: 'string',
const: '3.1-RC',
},
data: {
description: 'Array that contains one object per station as defined below.',
type: 'object',
properties: {
stations: {
type: 'array',
items: {
type: 'object',
properties: {
station_id: {
description: 'Identifier of a station.',
type: 'string',
},
name: {
description: 'Public name of the station.',
type: 'array',
items: {
type: 'object',
properties: {
text: {
description: 'The translated text.',
type: 'string',
},
language: {
description: 'IETF BCP 47 language code.',
type: 'string',
pattern: '^[a-z]{2,3}(-[A-Z]{2})?$',
},
},
required: ['text', 'language'],
},
},
short_name: {
description: 'Short name or other type of identifier.',
type: 'array',
items: {
type: 'object',
properties: {
text: {
description: 'The translated text.',
type: 'string',
},
language: {
description: 'IETF BCP 47 language code.',
type: 'string',
pattern: '^[a-z]{2,3}(-[A-Z]{2})?$',
},
},
required: ['text', 'language'],
},
},
lat: {
description: 'The latitude of the station.',
type: 'number',
minimum: -90,
maximum: 90,
},
lon: {
description: 'The longitude fo the station.',
type: 'number',
minimum: -180,
maximum: 180,
},
address: {
description: 'Address where station is located.',
type: 'string',
},
cross_street: {
description: 'Cross street or landmark where the station is located.',
type: 'string',
},
region_id: {
description: 'Identifier of the region where the station is located.',
type: 'string',
},
post_code: {
description: 'Postal code where station is located.',
type: 'string',
},
station_opening_hours: {
description: 'Hours of operation for the station in OSM opening_hours format.',
type: 'string',
},
rental_methods: {
description: 'Payment methods accepted at this station.',
type: 'array',
items: {
type: 'string',
enum: [
'key',
'creditcard',
'paypass',
'applepay',
'androidpay',
'transitcard',
'accountnumber',
'phone',
],
},
minItems: 1,
},
is_virtual_station: {
description: 'Is this station a location with or without physical infrastructure? (added in v2.1-RC)',
type: 'boolean',
},
station_area: {
description: 'A multipolygon that describes the area of a virtual station (added in v2.1-RC).',
type: 'object',
required: ['type', 'coordinates'],
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',
},
},
},
},
},
},
},
parking_type: {
description: 'Type of parking station. Added in v2.3',
type: 'string',
enum: [
'parking_lot',
'street_parking',
'underground_parking',
'sidewalk_parking',
'other',
],
},
parking_hoop: {
description: 'Are parking hoops present at this station? Added in v2.3',
type: 'boolean',
},
contact_phone: {
description: 'Contact phone of the station. Added in v2.3',
type: 'string',
},
capacity: {
description: 'Number of total docking points installed at this station, both available and unavailable.',
type: 'integer',
minimum: 0,
},
vehicle_types_capacity: {
description: "This field's value is an array of objects containing the keys vehicle_type_ids and count defined below. These objects are used to model the parking capacity of virtual stations (defined using the is_virtual_station field) for each vehicle type that can be returned to this station.",
type: 'array',
items: {
type: 'object',
properties: {
vehicle_type_ids: {
description: 'The vehicle_type_ids, as defined in vehicle_types.json, that may park at the virtual station.',
type: 'array',
items: {
type: 'string',
},
},
count: {
description: 'A number representing the total number of vehicles of the specified vehicle_type_ids that can park within the virtual station.',
type: 'integer',
minimum: 0,
},
},
required: ['vehicle_type_ids', 'count'],
},
},
vehicle_docks_capacity: {
description: "This field's value is an array of objects containing the keys vehicle_type_ids and count defined below. These objects are used to model the total docking capacity of a station, both available and unavailable, for each type of vehicle that may dock at this station.",
type: 'array',
items: {
type: 'object',
properties: {
vehicle_type_ids: {
description: 'An array of strings where each string represents a vehicle_type_id that is able to use a particular type of dock at the station.',
type: 'array',
items: {
type: 'string',
},
},
count: {
description: 'A number representing the total number of docks at the station, both available and unavailable, that may accept the vehicle types specified by vehicle_type_ids.',
type: 'integer',
minimum: 0,
},
},
required: ['vehicle_type_ids', 'count'],
},
},
is_valet_station: {
description: 'Are valet services provided at this station? (added in v2.1-RC)',
type: 'boolean',
},
is_charging_station: {
description: 'Does the station support charging of electric vehicles? (added in v2.3-RC)',
type: 'boolean',
},
rental_uris: {
description: 'Contains rental uris for Android, iOS, and web in the android, ios, and web fields (added in v1.1).',
type: 'object',
properties: {
android: {
description: 'URI that can be passed to an Android app with an intent (added in v1.1).',
type: 'string',
format: 'uri',
},
ios: {
description: 'URI that can be used on iOS to launch the rental app for this station (added in v1.1).',
type: 'string',
format: 'uri',
},
web: {
description: 'URL that can be used by a web browser to show more information about renting a vehicle at this station (added in v1.1).',
type: 'string',
format: 'uri',
},
},
},
},
required: ['station_id', 'name', 'lat', 'lon'],
},
},
},
required: ['stations'],
},
},
required: ['last_updated', 'ttl', 'version', 'data'],
};
/**
* # GBFS Station Information Schema V3.0
* List of all stations, their capacities and locations. REQUIRED of systems utilizing docks.
*
* ## Links
* - [GBFS Specification](https://github.com/MobilityData/gbfs/blob/v3.0/gbfs.md#station_informationjson)
*/
export const gbfsStationInformationSchemaV30 = {
$schema: 'http://json-schema.org/draft-07/schema',
$id: 'https://github.com/MobilityData/gbfs/blob/v3.0/gbfs.md#station_informationjson',
description: 'List of all stations, their capacities and locations. REQUIRED of systems utilizing docks.',
type: 'object',
properties: {
last_updated: {
description: 'Last time the data in the feed was updated in RFC3339 format.',
type: 'string',
format: 'date-time',
},
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 (added in v1.1).',
type: 'string',
const: '3.0',
},
data: {
description: 'Array that contains one object per station as defined below.',
type: 'object',
properties: {
stations: {
type: 'array',
items: {
type: 'object',
properties: {
station_id: {
description: 'Identifier of a station.',
type: 'string',
},
name: {
description: 'Public name of the station.',
type: 'array',
items: {
type: 'object',
properties: {
text: {
description: 'The translated text.',
type: 'string',
},
language: {
description: 'IETF BCP 47 language code.',
type: 'string',
pattern: '^[a-z]{2,3}(-[A-Z]{2})?$',
},
},
required: ['text', 'language'],
},
},
short_name: {
description: 'Short name or other type of identifier.',
type: 'array',
items: {
type: 'object',
properties: {
text: {
description: 'The translated text.',
type: 'string',
},
language: {
description: 'IETF BCP 47 language code.',
type: 'string',
pattern: '^[a-z]{2,3}(-[A-Z]{2})?$',
},
},
required: ['text', 'language'],
},
},
lat: {
description: 'The latitude of the station.',
type: 'number',
minimum: -90,
maximum: 90,
},
lon: {
description: 'The longitude fo the station.',
type: 'number',
minimum: -180,
maximum: 180,
},
address: {
description: 'Address where station is located.',
type: 'string',
},
cross_street: {
description: 'Cross street or landmark where the station is located.',
type: 'string',
},
region_id: {
description: 'Identifier of the region where the station is located.',
type: 'string',
},
post_code: {
description: 'Postal code where station is located.',
type: 'string',
},
station_opening_hours: {
description: 'Hours of operation for the station in OSM opening_hours format.',
type: 'string',
},
rental_methods: {
description: 'Payment methods accepted at this station.',
type: 'array',
items: {
type: 'string',
enum: [
'key',
'creditcard',
'paypass',
'applepay',
'androidpay',
'transitcard',
'accountnumber',
'phone',
],
},
minItems: 1,
},
is_virtual_station: {
description: 'Is this station a location with or without physical infrastructure? (added in v2.1-RC)',
type: 'boolean',
},
station_area: {
description: 'A multipolygon that describes the area of a virtual station (added in v2.1-RC).',
type: 'object',
required: ['type', 'coordinates'],
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',
},
},
},
},
},
},
},
parking_type: {
description: 'Type of parking station. Added in v2.3',
type: 'string',
enum: [
'parking_lot',
'street_parking',
'underground_parking',
'sidewalk_parking',
'other',
],
},
parking_hoop: {
description: 'Are parking hoops present at this station? Added in v2.3',
type: 'boolean',
},
contact_phone: {
description: 'Contact phone of the station. Added in v2.3',
type: 'string',
},
capacity: {
description: 'Number of total docking points installed at this station, both available and unavailable.',
type: 'integer',
minimum: 0,
},
vehicle_types_capacity: {
description: "This field's value is an array of objects containing the keys vehicle_type_ids and count defined below. These objects are used to model the parking capacity of virtual stations (defined using the is_virtual_station field) for each vehicle type that can be returned to this station.",
type: 'array',
items: {
type: 'object',
properties: {
vehicle_type_ids: {
description: 'The vehicle_type_ids, as defined in vehicle_types.json, that may park at the virtual station.',
type: 'array',
items: {
type: 'string',
},
},
count: {
description: 'A number representing the total number of vehicles of the specified vehicle_type_ids that can park within the virtual station.',
type: 'integer',
minimum: 0,
},
},
required: ['vehicle_type_ids', 'count'],
},
},
vehicle_docks_capacity: {
description: "This field's value is an array of objects containing the keys vehicle_type_ids and count defined below. These objects are used to model the total docking capacity of a station, both available and unavailable, for each type of vehicle that may dock at this station.",
type: 'array',
items: {
type: 'object',
properties: {
vehicle_type_ids: {
description: 'An array of strings where each string represents a vehicle_type_id that is able to use a particular type of dock at the station.',
type: 'array',
items: {
type: 'string',
},
},
count: {
description: 'A number representing the total number of docks at the station, both available and unavailable, that may accept the vehicle types specified by vehicle_type_ids.',
type: 'integer',
minimum: 0,
},
},
required: ['vehicle_type_ids', 'count'],
},
},
is_valet_station: {
description: 'Are valet services provided at this station? (added in v2.1-RC)',
type: 'boolean',
},
is_charging_station: {
description: 'Does the station support charging of electric vehicles? (added in v2.3-RC)',
type: 'boolean',
},
rental_uris: {
description: 'Contains rental uris for Android, iOS, and web in the android, ios, and web fields (added in v1.1).',
type: 'object',
properties: {
android: {
description: 'URI that can be passed to an Android app with an intent (added in v1.1).',
type: 'string',
format: 'uri',
},
ios: {
description: 'URI that can be used on iOS to launch the rental app for this station (added in v1.1).',
type: 'string',
format: 'uri',
},
web: {
description: 'URL that can be used by a web browser to show more information about renting a vehicle at this station (added in v1.1).',
type: 'string',
format: 'uri',
},
},
},
},
required: ['station_id', 'name', 'lat', 'lon'],
},
},
},
required: ['stations'],
},
},
required: ['last_updated', 'ttl', 'version', 'data'],
};
//# sourceMappingURL=stationInformation.js.map