在继续学习本部分之前,请先验证您要为其构建 Feed 的受支持的微出行系统(如果您尚未验证)。
在以下各部分中,每个标题的格式如下:Required|Optional|Conditionally required: Feed name (System supported)
。支持以下系统:
- 已插入基座的系统
- 无桩系统
- 有桩和无桩系统
为了成功与 Google 集成,请仅提供您的 Feed 所描述的系统所需的文件,并指定相关部分中包含的必填字段。对于条件性必填字段,请参阅字段说明以获取指导。您还可以指定可选字段来添加信息,从而提供更好的用户体验。
微出行 Feed 的必需标头
微出行 Feed 是包含停靠式或无桩式微出行结构化数据(如本文中所述)的 Feed。
所有 Feed 都必须始终在 JSON 对象的顶层指定下表中所列的字段,这些字段统称为通用 GBFS 标头。
字段名称 | 类型 | 要求 | 说明 |
---|---|---|---|
last_updated |
时间戳 | 必需 | 一个 POSIX 时间戳,用于指定自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数。
设置为 Feed 中数据的上次更新时间。 |
ttl |
非负整数 | 必需 | 一个非负整数,表示距离更新 Feed 的时间还剩多少秒。
如果必须以恒定速率更新数据,请将此值设置为 |
data |
JSON | 必需 | 包含各个 Feed 的数据字段的 JSON。 |
例如,指定了通用 GBFS 标头的汇总 free_bike_status.json
Feed 可能如下所示:
{
"ttl": 30,
"last_updated": 1576123774,
"data": {
"bikes": [ ... ] // GBFS free bike status objects.
}
}
必需:system_information.json(有基座和无基座的系统)
如有需要,请参阅 GBFS 规范。
此 Feed 提供有关系统运营商的详细信息。
字段名称 | 类型 | 要求 | 说明 |
---|---|---|---|
system_id |
ID | 必需 | 车辆共享系统的全局唯一标识符。此值在系统生命周期内应保持不变。 车辆运行的每个不同系统或地理区域都应有自己的 system_id。系统 ID 应该能够识别为属于特定系统,而不是随机字符串 - 例如,bcycle_austin 或 biketown_pdx。 |
name |
字符串 | 必需 | 向客户显示的系统名称。 |
rental_apps |
对象 | 必需 | 一个 JSON 对象,其中包含 Android 和 iOS 的租赁应用信息,分别位于各自的字段中。 |
rental_apps.android |
对象 | 在特定条件下必需 |
在 store_uri 和 discovery_uri 字段中包含 Android 平台的租赁应用下载和应用发现信息。如果系统提供商有 Android 租赁应用,则此字段为必需字段。
|
rental_apps.android.store_uri |
URI | 必需 | 可供下载租赁 Android 应用的 URI。这通常是指向应用商店(例如 Google Play)的 URI。如果 URI 指向 Google Play 等应用商店,我们建议该 URI 遵循 Android 最佳实践,以便查看应用可以直接打开该 URI 以访问原生应用商店应用,而不是网站。 |
rental_apps.android.discovery_uri |
URI | 必需 | 格式为 your_custom_scheme://your/path/here 的 URI。
PackageManager.queryIntentActivities() 可以使用该 URI 来发现设备上是否安装了租赁 Android 应用。
|
rental_apps.ios |
对象 | 在特定条件下必需 | 在 store_uri 和 discovery_uri 字段中包含 iOS 平台的租赁应用下载和应用发现信息。如果系统提供商有 iOS 租赁应用,则此字段为必需字段。
|
rental_apps.ios.store_uri |
URI | 必需 | 可供下载租赁 iOS 应用的 URI。这通常是指向应用商店(例如 Apple App Store)的 URI。如果 URI 指向 Apple App Store 等应用商店,我们建议该 URI 遵循 iOS 最佳实践,以便查看应用可以直接打开该 URI 以访问原生应用商店应用,而不是网站。 |
rental_apps.ios.discovery_uri |
URI | 必需 | 格式为 your_custom_scheme:// 的 URI。UIApplication canOpenURL: 可使用该 URI 来发现设备上是否安装了租赁 iOS 应用。
|
必需:free_bike_status.json(无桩系统)
如有需要,请参阅 GBFS 规范。
此 Feed 定义了可供出售的独立式车辆的位置和属性。出于隐私保护方面的考虑,此 Feed 中不得显示正在出租的车辆。
字段名称 | 类型 | 要求 | 说明 |
---|---|---|---|
bikes |
数组 | 必需 | 当前可用的已停止的自行车数组,其中每辆自行车都是一个对象。 |
bikes[].bike_id |
ID | 必需 | 自行车的标识符。
为保护隐私,每次行程结束后,该 ID 都可以更改为随机字符串。 |
bikes[].lat |
纬度 | 必需 | 自行车的 WGS 84 纬度,采用十进制度格式。 |
bikes[].lon |
经度 | 必需 | 自行车的 WGS 84 经度,采用十进制格式。 |
bikes[].is_reserved |
布尔值 | 必需 | 自行车当前是否已预订,如下所示:
|
bikes[].is_disabled |
布尔值 | 必需 | 自行车目前是处于停用状态还是损坏状态,如下所示:
|
bikes[].rental_uris |
对象 | 必需 | 一个 JSON 对象,其中包含 Android、iOS 和 Web 的租赁 URI,分别位于各自的字段中。 |
bikes[].rental_uris.android |
URI | 在特定条件下必需 | 一种 URI,可通过 android.intent.action.VIEW Android intent 传递给 Android 应用,以支持
Android 深层链接。提供的 rental_uris 必须是
Android 应用链接,这样查看应用就不需要手动管理用户重定向到应用商店的操作(如果用户未安装提供方应用)。
此 URI 必须是特定于单辆自行车的深层链接,而不是包含多辆自行车信息的通用租赁页面。 深层链接必须直接将用户引导至自行车,而不会出现任何提示、转到任何插页式网页或登录页。确保用户即使从未打开过相应应用,也可以看到自行车。 URI 不一定需要包含自行车的 如果合作伙伴有 Android 租赁应用,则此字段为必填字段。 Android 应用链接示例:
|
bikes[].rental_uris.ios |
URI | 在特定条件下必需 | 可在 iOS 上用于启动自行车租赁应用的 URI。
如需详细了解此方面的信息,请参阅 Apple 关于
iOS 自定义网址方案的文章。
提供的 rental_uris 必须是
iOS 通用链接,这样查看应用就不需要在用户未安装提供方应用的情况下手动管理用户到应用商店的重定向。
此 URI 必须是特定于单辆自行车的深层链接,而不是包含多辆自行车信息的通用租赁页面。 深层链接必须直接将用户引导至自行车,而不会出现任何提示、转到任何插页式网页或登录页。确保用户即使从未打开过相应应用,也可以看到自行车。 URI 不一定需要包含自行车的 bike_id,只要合作伙伴有其他方式来识别相应的自行车即可。例如,租赁应用可以使用 URI 中的其他标识符来唯一标识自行车。 如果合作伙伴有 iOS 租赁应用,则此字段为必填字段。 iOS 通用链接示例:
|
bikes[].rental_uris.web |
网址 | 可选 | 可供网络浏览器使用的网址,用于显示有关在相应车辆处租车的更多信息。 此网址必须是特定于单辆自行车的深层链接,而不是包含多辆自行车信息的通用租赁页面。 深层链接必须直接将用户引导至自行车,而不会出现任何提示、转到任何插页式网页或登录页。确保用户即使从未打开过相应应用,也可以看到自行车。 网址不一定需要包含自行车的 如果未设置此字段,则表示 Web 浏览器不支持深层链接。 示例值:
|
bikes[].vehicle_type_id |
ID | 必需 | 车辆的 vehicle_type_id ,如 vehicle_types.json 部分中所述。
|
bikes[].pricing_plan_id |
ID | 必需 | 租用相应车辆类型时所应用的价位方案的标识符,如 system_pricing_plans.json 部分中所述。
|
bikes[].current_range_meters |
非负浮点数 | 在特定条件下必需 | 如果与车辆对应的 vehicle_type 定义包含电机,则此字段为必填字段。
设置为车辆在当前充电或燃油量的情况下,无需充电或加油即可行驶的最远距离(以米为单位)。 |
bikes[].last_reported |
时间戳 | 可选 | 设置为车辆上次向运营商后端报告状态的时间。 |
以下是 free_bike_status.json
的示例:
"bikes": [{
"bike_id": "xyz123",
"lat": 12.34,
"lon": 56.78,
"is_reserved": true,
"is_disabled": false,
"rental_uris":{
"android": "https://www.example.com/app?sid=1234567890&platform=android",
"ios": "https://www.example.com/app?sid=1234567890&platform=ios",
"web": "https://www.example.com/app?sid=1234567890"
},
"vehicle_type_id": "scooter_electric",
"pricing_plan_id": "sydneyPlan1",
"current_range_meters": 4500,
"last_reported": 1434054678
},
{
"bike_id": "abc123",
"lat": 1.34,
"lon": 146.78,
"is_reserved": false,
"is_disabled": true,
"rental_uris":{
"android": "https://www.example.com/app?sid=1234567890&platform=android",
"ios": "https://www.example.com/app?sid=1234567890&platform=ios",
"web": "https://www.example.com/app?sid=1234567890"
},
"vehicle_type_id": "bike_manual",
"pricing_plan_id": "sydneyPlan1",
"last_reported": 1434054241
}
]
必需:vehicle_types.json(有桩和无桩系统)
如有需要,请参阅 GBFS 规范。
此 Feed 定义了各个车辆类型的详细信息,如 free_bike_status.json
部分中所述。
字段名称 | 类型 | 要求 | 说明 |
---|---|---|---|
vehicle_types |
数组 | 必需 | 一个对象数组,其中每个对象都定义了提供商目录中的一种不同的车辆类型。对于给定的车辆类型,只能有一个对象。 |
vehicle_types[].vehicle_type_id |
ID | 必需 | 指定车辆类型的唯一标识符。 |
vehicle_types[].form_factor |
枚举 | 必需 | 一个枚举,表示车辆的一般外形规格,来自以下当前有效值列表:
|
vehicle_types[].propulsion_type |
枚举 | 必需 | 一个枚举,用于表示车辆的主要推进类型,目前有效的值如下:
|
vehicle_types[].max_range_meters |
非负浮点数 | 在特定条件下必需 | 如果 propulsion_type 未设置为 human ,则表示车辆有发动机,因此必须设置此字段。
设置为车辆在满油或满电状态下无需充电或加油即可行驶的最远距离(以米为单位)。 |
以下是 vehicle_types.json
的示例:
"vehicle_types": [
{
"vehicle_type_id": "bike_manual",
"form_factor": "bicycle",
"propulsion_type": "human"
},
{
"vehicle_type_id": "scooter_electric",
"form_factor": "scooter",
"propulsion_type": "electric",
"max_range_meters": 10000
}
]
必需:system_pricing_plans.json(无桩系统)
如有需要,请参阅 GBFS 规范。
此 Feed 定义了独立式车辆的价格方案。我们要求提供商显示独立式车辆的价格信息。
字段名称 | 类型 | 要求 | 说明 |
---|---|---|---|
plans |
数组 | 必需 | 一个对象数组,其中每个对象都定义了一个给定的价格方案。 |
plans[].plan_id |
ID | 必需 | 一个字符串,表示提供商提供的给定价格方案的唯一标识符。 |
plans[].url |
网址 | 可选 | 指向价格方案相关详情的网址,供最终用户访问。 |
plans[].currency |
字符串 | 必需 | 价格方案的 ISO 4217 标准。 |
plans[].price |
非负浮点数 | 必需 |
价格方案必须定义为非分级价格方案或分级价格方案:
|
plans[].per_km_pricing |
数组 | 在特定条件下必需 |
如果价格是行驶距离(以公里为单位)的函数,则此字段为必需字段。 对象数组,其中每个对象都定义了一个给定的距离划分段。每个细分的 若要确定指定方案的总价格,请将指定方案的 如果未设置此字段,则不会有基于距离的变动价格,因此也不会将其纳入总价。 |
plans[].per_km_pricing[].start |
非负整数 | 必需 |
开始按分段费率收费的里程数(以公里为单位)。
此字段设置为细分的范围的起始值(含)。因此,一旦行驶里程达到相应公里数,系统就会收取一次 rate 。
|
plans[].per_km_pricing[].rate |
浮点数 | 必需 | 每个 interval 的收费费率,从区段的起始值(含)start 开始。如果此字段设置为负数,则旅客可享受折扣。
|
plans[].per_km_pricing[].interval |
非负整数 | 必需 |
细分受众群的
如果将细分的 如果此字段设置为 |
plans[].per_km_pricing[].end |
非负整数 | 可选 |
不再应用相应路段的 如果未设置此字段或此字段为空,则系统会针对相应路段的 |
plans[].per_min_pricing |
数组 | 在特定条件下必需 |
如果价格是时间的函数(以分钟为单位),则此字段为必需字段。 一个对象数组,其中每个对象都定义了一个给定的时间划分段。每个区段的 若要确定指定方案的总价格,请将指定方案的 如果未设置此字段,则不存在基于时间的可变价格,因此总价格中不包含任何可变价格。 |
plans[].per_min_pricing[].start |
浮点数 | 必需 |
开始按细分费率收费的分钟数。
此字段设置为细分的范围的起始值(含)。因此,一旦设定的分钟数过去,系统就会收取一次 rate 费用。
|
plans[].per_min_pricing[].rate |
浮点数 | 必需 | 针对每个 interval 收取的费率。速率从区段的起始值(含)start 开始。如果此字段设置为负数,则旅客可享受折扣。
|
plans[].per_min_pricing[].interval |
非负整数 | 必需 |
细分的
如果将细分的 如果此字段设置为 |
plans[].per_min_pricing[].end |
非负整数 | 可选 |
细分受众群的 如果未设置此字段或此字段为空,则系统会收取相应路段的 |
system_pricing_plans.json 的示例
本部分提供了信息丰富的 system_pricing_plans.json
代码示例。此外,我们还提供了每个示例的相关详细信息和结果。
system_pricing_plans.json 的示例 1
以下价格方案代码示例显示了基于行程时间的费用,时间间隔如下:
- [0,1):2 美元
- 如果行程时间不到 1 分钟,用户需支付 2 美元。
- 示例:59 秒的行程
- [1,2):3 美元
- 如果行程时长不低于 1 分钟但低于 2 分钟,用户需支付 2 美元 + 1 美元 = 3 美元。
- 示例:1 分钟的行程;1 分 45 秒的行程
- x 分钟数,其中 x 大于或等于 2:
$3 + (($2 + $1) * (x - 2 + 1))
美元
- 如果行程时长大于或等于 2 分钟,用户需支付 3 美元(行程时长不足 2 分钟的部分)以及(1 美元 [
per_min_pricing
列表中的第一个条目] + 2 美元 [per_min_pricing
列表中的第二个条目])乘以 2 分钟之后每分钟的费用(包括 2 分钟)。 - 示例:
- 2 分钟行程的费用为 3 美元 +(2 美元 + 1 美元)= 6 美元
- 2 分 30 秒的行程费用为 $3 + ($2 + $1) = $6 美元
- 3 分钟行程的费用为 3 美元 + (($2 + $1) * 2) = 9 美元
- 10 分钟行程的费用为 3 美元 + (($2 + $1) * 9) = 30 美元
- 如果行程时长大于或等于 2 分钟,用户需支付 3 美元(行程时长不足 2 分钟的部分)以及(1 美元 [
{
"plans": {
"plan_id": "plan1",
"currency": "USD",
"price": 2,
"per_min_pricing": [
{
"interval": 1,
"rate": 1,
"start": 1
},
{
"interval": 1,
"rate": 2,
"start": 2
}
],
}
}
system_pricing_plans.json 的示例 2
在此示例中,我们展示了一个价格方案的代码示例,该方案按分钟和公里数收取费用:
- 具体而言,最终用户需支付每公里 0.25 加元以及每分钟 0.50 加元的费用。
- 这两种速率同时发生,并且互不依赖。
- 因此,10 分钟的 1 公里行程的费用为 9 加元。费用明细如下:
- 3 美元,基本价格
- 0.25 美元 * 2,在行程开始时收取一次,在达到 1 公里时收取一次。
- $0.5 * 11,每分钟开始时收取一次。费用从 0 秒开始计算,最后一个间隔的费用在 10 分钟时计算。
{
"plans": {
"plan_id": "plan2",
"currency": "CAD",
"price": 3,
"per_km_pricing": [{
"start": 0,
"rate": 0.25,
"interval": 1
}],
"per_min_pricing": [{
"start": 0,
"rate": 0.50,
"interval": 1
}]
}
}
有条件地必需:geofencing_zones.json(有桩和无桩系统)
如有需要,请参阅 GBFS 规范。
此 Feed 定义了独立式车辆的地理围栏数据。地理围栏数据包括指定车辆允许开始行程和结束行程的地理边界,以及车辆可以行驶的速度。此速度为车辆的最大速度或车辆所在道路的速度限制,以较低者为准。司机必须遵守当地法律和法规。
我们使用此数据,以便在用户搜索特定路线时,如果行程的终点位于特定地理围栏之外,则过滤掉微出行结果。如果未提供地理围栏,Google 会将相应服务视为不受边界限制。
字段名称 | 类型 | 要求 | 说明 |
---|---|---|---|
geofencing_zones |
对象 | 必需 | 根据
IETF RFC 7946 的描述,FeatureCollection 对象是指具有名为 features 的字段的对象。features 的值是一个 JSON 数组。
JSON 数组的每个元素都是一个 Feature 对象。
每个地理围栏区域、其关联的规则和属性以及 |
geofencing_zones.type |
字符串 | 必需 | 根据
IETF RFC 7946 的描述,设置为 FeatureCollection 。 |
geofencing_zones.features |
数组 | 必需 | 一个 JSON 数组,其中 JSON 数组的每个元素都是一个 Feature 对象。 |
geofencing_zones.features[].type |
字符串 | 必需 | 根据
IETF RFC 7946 的描述,设置为 Feature 。 |
geofencing_zones.features[].geometry |
GeoJSON 多边形 | 必需 | 一个 GeoJSON Multipolygon,用于描述行程无法开始、结束、途经的地点,以及其他限制。按顺时针排列的点定义了多边形所围合的区域,而按逆时针排列的点定义了多边形之外的区域。如需详细了解此信息,请参阅 右手定则。 |
geofencing_zones.features[].properties |
对象 | 必需 | 用于定义差旅津贴和限制的对象。 |
geofencing_zones.features[].properties.rules |
数组 | 可选 | 一个对象数组,其中每个对象都定义了一条且仅一条规则。如果两个或多个规则在某种程度上重叠、冲突或以其他方式发生冲突,则 JSON 文件中按顺序最早定义的规则优先。 |
geofencing_zones.features[].properties.rules[].vehicle_type_id |
数组 | 可选 | 车辆类型 ID 的数组,其中每个元素都是一个 vehicle_type_id ,必须对该 ID 应用任何限制。
如果未指定任何 vehicle_type_id ,则限制适用于所有车辆类型。 |
geofencing_zones.features[].properties.rules[].ride_allowed |
布尔值 | 必需 | 自由停放的“无桩”骑行活动是否可以在区域内开始和结束,如下所示:
|
以下是 geofencing_zones.json
的示例:
"geofencing_zones":{
"type":"FeatureCollection",
"features":[{
"type":"Feature",
"properties":{
"rules":[{
"vehicle_type_id":"scooter",
"ride_allowed": false
}]
},
"geometry":{
"type":"MultiPolygon",
"coordinates":[[[
[-122.66780376434326, 45.49896266763551],
[-122.66810417175292, 45.49824825558575],
[-122.66830801963805, 45.49632305799116],
[-122.66780376434326, 45.49896266763551]
]]]
}
}]
}
必需:station_information.json(停靠系统)
如有需要,请参阅 GBFS 规范。
此 Feed 定义了公共自行车共享站的一般信息。
字段名称 | 类型 | 要求 | 说明 |
---|---|---|---|
stations |
数组 | 必需 | 一个对象数组,其中每个对象都定义一个且仅一个站。 |
stations[].station_id |
字符串 | 必需 | 车站的标识符。 |
stations[].name |
字符串 | 必需 |
车站的公开名称,以车站所在城市的本地语言表示。name 必须与车站标牌上使用的名称一致(如有),或者必须通过使用交叉街道或当地地标来反映车站位置。
请勿使用“Street”等缩写形式,除非路牌上明确使用了此类缩写,并且 name 必须采用混合大小写形式,遵循地名大小写的当地惯例,而不能全部大写。
|
stations[].lat |
纬度 | 必需 | 站点的 WGS 84 纬度,以十进制度格式表示。 |
stations[].lon |
经度 | 必需 | 站点的 WGS 84 经度,采用十进制度格式。 |
stations[].capacity |
非负整数 | 可选 | 一个非负整数,表示车站安装的停靠点总数(包括可用和不可用的停靠点)。 |
stations[].rental_uris |
对象 | 必需 |
一个 JSON 对象,其中包含 Android、iOS 和 Web 的租赁 URI,分别位于各自的字段中。 如果指定了这些 URI,它们会替换提供商启用时设置的默认深层链接。 |
stations[].rental_uris.android |
URI | 在特定条件下必需 |
一种可使用 此 URI 必须是特定于单个站点的深层链接,而不是包含多个站点信息的常规租赁页面。深层链接必须将用户直接转到电台,而不会出现任何提示、转到任何插页式网页或登录页。确保用户即使从未打开过相应应用,也可以看到电台。 URI 不一定需要包含电台的 如果合作伙伴有 Android 租赁应用,则此字段为必填字段。 Android 应用链接示例:
|
stations[].rental_uris.ios |
URI | 在特定条件下必需 |
可在 iOS 上用于启动车站租车应用的 URI。
如需详细了解此方面的信息,请参阅 Apple 关于 iOS 自定义网址方案的文章。
提供的 此 URI 必须是特定于单个站点的深层链接,而不是包含多个站点信息的常规租赁页面。深层链接必须将用户直接转到电台,而不会出现任何提示、转到任何插页式网页或登录页。确保用户即使从未打开过相应应用,也可以看到电台。 URI 不一定需要包含电台的 如果合作伙伴有 iOS 租赁应用,则此字段为必填字段。 iOS 通用链接示例:
|
stations[].rental_uris.web |
网址 | 可选 | 网址,可供网络浏览器用来显示有关如何在此车站租车的更多信息。 此网址必须是特定于单个站点的深层链接,而不是包含多个站点信息的常规租赁页面。 深层链接必须将用户直接转到电台,而不会出现任何提示、转到任何插页式网页或登录页。确保用户即使从未打开过相应应用,也可以看到车站。 网址不一定需要包含影音平台的 如果未设置此字段,则表示 Web 浏览器不支持深层链接。 示例值:
|
以下是 station_information.json
的示例:
"stations": [
{
"station_id": "597",
"name": "Silverthorne Road, Battersea",
"lat": 51.472865,
"lon": -0.148059,
"capacity": 10,
"rental_uris": {
"android": "https://www.example.com/app?sid=1234567890&platform=android",
"ios": "https://www.exampleexample.com/app?sid=1234567890&platform=ios",
"web": "https://www.example.com/app?sid=1234567890&platform=web"
}
},
]
必需:station_status.json(已停靠的系统)
如有需要,请参阅 GBFS 规范。
此 Feed 定义了公共共享单车站点的最新当前状态。
字段名称 | 类型 | 要求 | 说明 |
---|---|---|---|
stations |
数组 | 必需 | 一个对象数组,其中每个对象都定义一个且仅一个站。 |
stations[].station_id |
字符串 | 必需 | 车站的标识符。 |
stations[].num_bikes_available |
非负整数 | 必需 |
一个非负整数,表示实际位于车站且可能可供租借的可用自行车数量。 如需确定相应车站目前是否出租自行车,您必须检查该车站的 |
stations[].vehicle_types_available |
数组 | 可选 |
一个对象数组,用于定义车辆总数,按车站提供的各个车辆类型进行分类。每个对象都用于表示关联车辆类型的车辆总数。每个对象的车辆总数必须与 |
stations[].vehicle_types_available[].vehicle_type_id |
ID | 必需 |
车站提供的每种车辆类型的 |
stations[].vehicle_types_available[].count |
非负整数 | 必需 |
vehicle_types.json 中定义的车站内相应 |
stations[].num_docks_available |
非负整数 | 在特定条件下必需 |
除非车站的停靠容量不受限制,否则此字段是必填字段。例如,虚拟站点的停靠容量不受限制,因此无需填写此字段。 一个非负整数,表示车站中可接受车辆归还的可用功能性停靠站的总数。 如需确定车站目前是否接受自行车归还,您必须检查车站的 |
stations[].is_installed |
布尔值 | 必需 |
一个布尔值,用于指示相应站是否目前位于街道上并已安装。 如果充电站安装在街道上,请设置为 如果车站未安装在街道上,请设置为 |
stations[].is_renting |
布尔值 | 必需 |
一个布尔值,用于指示相应车站目前是否提供自行车租赁服务。 如果服务站目前出租自行车,则设置为 如果车站目前不提供自行车租赁服务,请设置为 |
stations[].is_returning |
布尔值 | 必需 |
一个布尔值,用于指示相应车站目前是否接受自行车归还。 如果车站目前接受自行车归还,则设置为 如果车站目前不接受自行车归还,则设置为 |
以下是 station_status.json
的示例:
"stations": [
{
"station_id": "2",
"num_bikes_available": 6,
"vehicle_types_available": [
{
"vehicle_type_id" : "scooter_electric",
"count" : 2
},
{
"vehicle_type_id" : "bike_manual",
"count" : 4
}
],
"num_docks_available": 30,
"is_installed": true,
"is_renting": true,
"is_returning": true,
"last_reported": 1576119631
},
]