Skip to content

Commit

Permalink
Update current version to v3.1-RC (#637)
Browse files Browse the repository at this point in the history
* manifest.json: include area, country_code #572
* Reservation Price #457
  • Loading branch information
richfab authored May 22, 2024
1 parent e0c48b2 commit ca2f933
Showing 1 changed file with 89 additions and 4 deletions.
93 changes: 89 additions & 4 deletions gbfs.md
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,9 @@ Field Name | REQUIRED | Type | Defines
`datasets[].versions` | Yes | Array<Object> | Contains one object for each of the available versions of a feed. The array MUST be sorted by increasing MAJOR and MINOR version number.
`datasets[].versions[].version` | Yes | String | The semantic version of the feed in the form `X.Y`.
`datasets[].versions[].url` | Yes | URL | URL of the corresponding `gbfs.json` endpoint.

`datasets[].area` | OPTIONAL | GeoJSON MultiPolygon | A GeoJSON MultiPolygon that describes the operating area. If `area` is supplied, then the record describes the general operating area of the system for the purpose of discovery. Geographic details of the system's operating restrictions must be explicitly specified using station locations and geofencing zones, where appropriate.
`datasets[].country_code` | OPTIONAL | Country Code | The ISO 3166-1 alpha-2 country code of the operating area. The field MUST NOT be specified if the operating area spans multiple countries.

**Example:**
```json
{
Expand All @@ -346,7 +348,45 @@ Field Name | REQUIRED | Type | Defines
"version":"3.0",
"url":"https://berlin.example.com/gbfs/3/gbfs"
}
]
],
"area": {
"type": "MultiPolygon",
"coordinates": [
[
[
[
13.10821,
52.58563
],
[
13.29743,
52.67046
],
[
13.48451,
52.6855
],
[
13.77993,
52.43458
],
[
13.65355,
52.33048
],
[
13.08165,
52.38793
],
[
13.10821,
52.58563
]
]
]
]
},
"country_code": "DE"
},
{
"system_id":"example_paris",
Expand All @@ -359,7 +399,49 @@ Field Name | REQUIRED | Type | Defines
"version":"3.0",
"url":"https://paris.example.com/gbfs/3/gbfs"
}
]
],
"area": {
"type": "MultiPolygon",
"coordinates": [
[
[
[
2.14306,
48.89971
],
[
2.36707,
48.99455
],
[
2.60219,
49.01987
],
[
2.615,
48.69025
],
[
2.52167,
48.6867
],
[
2.26838,
48.73275
],
[
2.13103,
48.80833
],
[
2.14306,
48.89971
]
]
]
]
},
"country_code": "FR"
}
]
}
Expand Down Expand Up @@ -545,7 +627,7 @@ Field Name | REQUIRED | Type | Defines
`vehicle_types[].wheel_count`<br/>*(added in v2.3)* | OPTIONAL | Non-negative Integer | Number of wheels this vehicle type has.
`vehicle_types[].max_permitted_speed`<br/>*(added in v2.3)* | OPTIONAL | Non-negative Integer | The maximum speed in kilometers per hour this vehicle is permitted to reach in accordance with local permit and regulations.
`vehicle_types[].rated_power`<br/>*(added in v2.3)* | OPTIONAL | Non-negative Integer | The rated power of the motor for this vehicle type in watts.
`vehicle_types[].default_reserve_time`<br/>*(added in v2.3)* | OPTIONAL | Non-negative Integer | Maximum time in minutes that a vehicle can be reserved before a rental begins. When a vehicle is reserved by a user, the vehicle remains locked until the rental begins. During this time the vehicle is unavailable and cannot be reserved or rented by other users. The vehicle status in `vehicle_status.json` MUST be set to `is_reserved = true`. If the value of `default_reserve_time` elapses without a rental beginning, the vehicle status MUST change to `is_reserved = false`. If `default_reserve_time` is set to `0`, the vehicle type cannot be reserved.
`vehicle_types[].default_reserve_time`<br/>*(added in v2.3)* | Conditionally REQUIRED | Non-negative Integer | REQUIRED if `reservation_price_per_min` or `reservation_price_flat_rate` are defined. Maximum time in minutes that a vehicle can be reserved before a rental begins. When a vehicle is reserved by a user, the vehicle remains locked until the rental begins. During this time the vehicle is unavailable and cannot be reserved or rented by other users. The vehicle status in `vehicle_status.json` MUST be set to `is_reserved = true`. If the value of `default_reserve_time` elapses without a rental beginning, the vehicle status MUST change to `is_reserved = false`. If `default_reserve_time` is set to `0`, the vehicle type cannot be reserved.
`vehicle_types[].return_constraint`<br/>*(as of v2.3)*| OPTIONAL | Enum | The conditions for returning the vehicle at the end of the rental. <br /><br />Current valid values are:<br /><ul><li>`free_floating` _(The vehicle can be returned anywhere permitted within the service area. Note that the vehicle is subject to rules in `geofencing_zones.json` if defined.)_</li><li>`roundtrip_station` _(The vehicle has to be returned to the same station from which it was initially rented. Note that a specific station can be assigned to the vehicle in `vehicle_status.json` using `home_station`.)_</li><li>`any_station` _(The vehicle has to be returned to any station within the service area.)_</li><li>`hybrid` (The vehicle can be returned to any station, or anywhere else permitted within the service area. Note that the vehicle is subject to rules in `geofencing_zones.json` if defined.)</li>
`vehicle_types[].vehicle_assets`<br/>*(added in v2.3)*| OPTIONAL | Object | Object containing the branding information for this vehicle type.
`vehicle_types[].vehicle_assets.icon_url`<br/>*(added in v2.3)*| REQUIRED | URL | A fully qualified URL pointing to the location of a graphic icon file that MAY be used to represent this vehicle type on maps and in other applications. File MUST be in SVG V1.1 format and MUST be either square or round.
Expand Down Expand Up @@ -1131,6 +1213,8 @@ Field Name | REQUIRED | Type | Defines
`plans[].name` <br/>*(as of v3.0)* | Yes | Array&lt;Localized String&gt; | Name of this pricing plan.
`plans[].currency` | Yes | String | Currency used to pay the fare. <br /><br /> This pricing is in ISO 4217 code: http://en.wikipedia.org/wiki/ISO_4217 <br />(for example, `CAD` for Canadian dollars, `EUR` for euros, or `JPY` for Japanese yen.)
`plans[].price` | Yes | Non-Negative Float | Fare price, in the unit specified by `currency`. <br/>*(added in v2.2)* In case of non-rate price, this field is the total price. In case of rate price, this field is the base price that is charged only once per trip (typically the price for unlocking) in addition to `per_km_pricing` and/or `per_min_pricing`.
`plans[].reservation_price_per_min` <br/>*(added in v3.1)* | OPTIONAL | Non-Negative Float | The cost, described as per minute rate, to reserve the vehicle prior to beginning a rental. This amount is charged for each minute of the vehicle reservation until the rental is initiated, or until the number of minutes defined in `vehicle_types.json#default_reserve_time` elapses, whichever comes first. When using this field, you MUST declare a value in `vehicle_types.json#default_reserve_time`. This field MUST NOT be combined in a single pricing plan with `reservation_price_flat_rate`.
`plans[].reservation_price_flat_rate` <br/>*(added in v3.1)* | OPTIONAL | Non-Negative Float | The cost, described as a flat rate, to reserve the vehicle prior to beginning a rental. This amount is charged once to reserve the vehicle for the duration of the time defined by `vehicle_types.json#default_reserve_time`. When using this field, you MUST declare a value in `vehicle_types.json#default_reserve_time`. This field MUST NOT be combined in a single pricing plan with `reservation_price_per_min`.
`plans[].is_taxable` | Yes | Boolean | Will additional tax be added to the base price?<br /><br />`true` - Yes.<br /> `false` - No. <br /><br />`false` MAY be used to indicate that tax is not charged or that tax is included in the base price.
`plans[].description` <br/>*(as of v3.0)* | Yes | Array&lt;Localized String&gt; | Customer-readable description of the pricing plan. This SHOULD include the duration, price, conditions, etc. that the publisher would like users to see.
`plans[].per_km_pricing` <br/>*(added in v2.2)* | OPTIONAL | Array&lt;Object&gt; | Array of segments when the price is a function of distance traveled, displayed in kilometers.<br /><br />Total cost is the addition of `price` and all segments in `per_km_pricing` and `per_min_pricing`. If this array is not provided, there are no variable costs based on distance.
Expand Down Expand Up @@ -1166,6 +1250,7 @@ The user does not pay more than the base price for the first 10 km. After 10 km
],
"currency": "USD",
"price": 2.00,
"reservation_price_per_min": 0.15,
"is_taxable": false,
"description": [
{
Expand Down

0 comments on commit ca2f933

Please sign in to comment.