Skip to content

Commit ef039d0

Browse files
authored
Merge branch 'dev' into ms-1.1.0-fixes
2 parents 5271fa8 + ffd020a commit ef039d0

34 files changed

Lines changed: 1679 additions & 119 deletions

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ More than 115 cities and public agencies around the world use MDS, and it has be
138138

139139
Please let us know [via our website](https://www.openmobilityfoundation.org/get-in-touch/) or in the [public discussion area](https://github.com/openmobilityfoundation/mobility-data-specification/discussions) if you are an agency using MDS so we can add you to the city resource list, especially if you have published your policies or documents publicly.
140140

141+
To add yourself to the [agency list](/agencies.csv) and add your [Policy Requirement link](/provider.md#requirements), please let us know [via our website](https://www.openmobilityfoundation.org/get-in-touch/) or open an [Issue](https://github.com/openmobilityfoundation/mobility-data-specification/issues) or [Pull Request](https://github.com/openmobilityfoundation/mobility-data-specification/pulls).
142+
141143
[Top][toc]
142144

143145
# Providers Using MDS

agencies.csv

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
agency_country_iso_code,agency_state,agency_city,agency_name,agency_id,department_url,requirement_url
2+
CA,British Columbia,Kelowna,City of Kelowna,31e836fc-72da-4b2e-b553-8227d77a9b7a,https://www.kelowna.ca/roads-transportation/active-transportation/cycling/bikeshare-permit-program,
3+
CO,Cundinamarca,Bogotá,Bogotá,85eac875-ab70-469f-8a85-cc5ef22e78d0,https://www.movilidadbogota.gov.co/web/,
4+
DE,Baden-Württemberg,Ulm,Stadt Ulm,68f28fb8-d177-43f4-b7e8-a286fe0ddca0,https://www.ulm.de/de-de,
5+
US,CA,Long Beach,City of Long Beach,188ed65d-a81e-40b9-b0b2-aeb85436610a,https://www.longbeach.gov/goactivelb/,
6+
US,CA,Los Angeles,Los Angeles,d82d8584-dfa6-4396-93f0-5a36288b9eb1,https://ladot.lacity.org/projects/transportation-services/shared-mobility/micromobility,
7+
US,CA,San Francisco,San Francisco,8e03693b-0153-446c-8bc0-c31f8a5a7ed8,https://www.sfmta.com/projects/powered-scooter-share-permit-and-pilot-program,
8+
US,CA,San Jose,San Jose,801cb4b8-8725-449c-bdb9-7e9ac0e10b5b,https://www.sanjoseca.gov/your-government/departments-offices/transportation/micro-mobility,
9+
US,CA,Santa Monica,Santa Monica,e4e7c0f6-c6aa-4919-a4de-565e4fe9fa57,https://www.smgov.net/Departments/PCD/Transportation/Shared-Mobility-Services/,
10+
US,CO,Denver,Denver,c3d07b63-f602-4837-9525-7285f5ef286b,https://www.denvergov.org/content/denvergov/en/transportation-infrastructure/programs-services/dockless-mobility.html,
11+
US,DC,Washington,District of Columbia,8aca1cf2-ffa5-46d8-b747-20cf00a7c7f1,https://ddot.dc.gov/page/dockless-vehicle-permits-district,
12+
US,FL,Miami,City of Miami,5b36be11-7d5d-45ab-9c89-105cf6aa8645,https://www.miamigov.com/Services/Transportation/Miami-Scooter-Pilot-Program,
13+
US,IL,Chicago,Chicago,d2ed9de6-2d2d-477c-a843-7d150d2310ed,https://www.chicago.gov/city/en/depts/cdot/supp_info/escooter-share-pilot-project.html,
14+
US,KY,Louisville,Louisville Metro,44bc31a7-464b-4ed9-b52e-8e74630826bd,https://louisvilleky.gov/government/public-works/dockless-find-and-ride-vehicles,
15+
US,MI,Detroit,Detroit,5814742e-78ba-4ac1-a628-c414ecc45448,https://detroitmi.gov/departments/department-public-works/complete-streets/scooters,
16+
US,MN,Minneapolis,Minneapolis,88303227-48d6-4088-a690-65b4dcf381f7,http://www.minneapolismn.gov/publicworks/trans/WCMSP-212816,
17+
US,OR,Portland,Portland,7d600eb6-f967-40ea-a212-33917f9b48ae,https://www.portlandoregon.gov/transportation/,
18+
US,PA,Philadelphia,Philadelphia,fa2d0c5a-a716-473c-808b-be3b23e022ee,http://www.phillyotis.com/portfolio-item/dockless-bike-share-pilot/,
19+
US,PA,Pittsburgh,Pittsburgh,f3c50422-7e3e-4efe-88c7-99da3b36c24d,https://pittsburghpa.gov/domi/bikeplan,
20+
US,TX,Austin,City of Austin,296220ae-c90a-4383-9a97-0bc6cf1adf18,https://austintexas.gov/department/shared-mobility-services,
21+
US,WA,Seattle,City of Seattle,9acf6e41-f145-49ad-be7f-d910e978fc36,https://www.seattle.gov/transportation/projects-and-programs/programs/bike-program/bike-share,

agency/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,8 @@ A standard point of vehicle telemetry. References to latitude and longitude impl
250250
| `gps.lng` | Double | Required | Longitude of the location |
251251
| `gps.altitude` | Double | Required if Available | Altitude above mean sea level in meters |
252252
| `gps.heading` | Double | Required if Available | Degrees - clockwise starting at 0 degrees at true North |
253-
| `gps.speed` | Float | Required if Available | Speed in meters / sec |
254-
| `gps.accuracy` | Float | Required if Available | Accuracy in meters |
253+
| `gps.speed` | Float | Required if Available | Estimated speed in meters / sec as reported by the GPS chipset |
254+
| `gps.accuracy` | Float | Required if Available | Horizontal accuracy, in meters |
255255
| `gps.hdop` | Float | Required if Available | Horizontal GPS or GNSS accuracy value (see [hdop][hdop]) |
256256
| `gps.satellites` | Integer | Required if Available | Number of GPS or GNSS satellites
257257
| `charge` | Float | Required if Applicable | Percent battery charge of vehicle, expressed between 0 and 1 |

agency/get_stops.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@
156156
"type": "number",
157157
"description": "Integer milliseconds since Unix epoch",
158158
"multipleOf": 1.0,
159-
"minimum": 0
159+
"minimum": 1514764800000
160160
},
161161
"uuid": {
162162
"$id": "#/definitions/uuid",

agency/get_vehicle.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"type": "number",
3131
"description": "Integer milliseconds since Unix epoch",
3232
"multipleOf": 1.0,
33-
"minimum": 0
33+
"minimum": 1514764800000
3434
},
3535
"vehicle_type": {
3636
"$id": "#/definitions/vehicle_type",

agency/post_stops.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@
156156
"type": "number",
157157
"description": "Integer milliseconds since Unix epoch",
158158
"multipleOf": 1.0,
159-
"minimum": 0
159+
"minimum": 1514764800000
160160
},
161161
"uuid": {
162162
"$id": "#/definitions/uuid",

agency/post_vehicle_event.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"type": "number",
8181
"description": "Integer milliseconds since Unix epoch",
8282
"multipleOf": 1.0,
83-
"minimum": 0
83+
"minimum": 1514764800000
8484
},
8585
"uuid": {
8686
"$id": "#/definitions/uuid",

agency/post_vehicle_telemetry.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"type": "number",
8181
"description": "Integer milliseconds since Unix epoch",
8282
"multipleOf": 1.0,
83-
"minimum": 0
83+
"minimum": 1514764800000
8484
},
8585
"uuid": {
8686
"$id": "#/definitions/uuid",

general-information.md

Lines changed: 37 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ This document contains specifications that are shared between the various MDS AP
99
* [Definitions](#definitions)
1010
* [Devices](#devices)
1111
* [Geographic Data][geo]
12+
* [Geographic Telemetry Data](#geographic-telemetry-data)
1213
* [Stop-based Geographic Data](#stop-based-geographic-data)
1314
* [Intersection Operation](#intersection-operation)
1415
* [Geography-Driven Events](#geography-driven-events)
@@ -57,6 +58,7 @@ Defining terminology and abbreviations used throughout MDS.
5758
* **API** - Application Programming Interface - A function or set of functions that allow one software application to access or communicate with features of a different software application or service.
5859
* **API Endpoint** - A point at which an API connects with a software application or service.
5960
* **DOT** - Department of Transportation, usually a city-run agency.
61+
* **Jurisdiction** - An agency’s area of legal authority to manage and regulate a mobility program in the real world. Note there is also an MDS API called [Jurisdiction](/jurisdiction/, which is a way to digitally represent this.
6062
* **PROW** - Public Right of Way - the physical infrastructure reserved for transportation purposes, examples include sidewalks, curbs, bike lanes, transit lanes and stations, traffic lanes and signals, and public parking.
6163

6264
[Top][toc]
@@ -73,14 +75,32 @@ Additionally, `device_id` must remain constant for the device's lifetime of serv
7375

7476
References to geographic datatypes (Point, MultiPolygon, etc.) imply coordinates encoded in the [WGS 84 (EPSG:4326)][wgs84] standard GPS or GNSS projection expressed as [Decimal Degrees][decimal-degrees]. When points are used, you may assume a 20 meter buffer around the point when needed.
7577

76-
Whenever an individual location coordinate measurement is presented, it must be
77-
represented as a GeoJSON [`Feature`][geojson-feature] object with a corresponding [`timestamp`][ts] property and [`Point`][geojson-point] geometry:
78+
### Geographic Telemetry Data
79+
80+
Whenever a vehicle location coordinate measurement is presented, it must be
81+
represented as a GeoJSON [`Feature`][geojson-feature] object with a corresponding
82+
`properties` object with the following properties:
83+
84+
85+
| Field | Type | Required/Optional | Field Description |
86+
| -------------- | -------------- | --------------------- | ------------------------------------------------------------ |
87+
| `timestamp` | [timestamp][ts] | Required | Date/time that event occurred. Based on GPS or GNSS clock |
88+
| `altitude` | Double | Required if Available | Altitude above mean sea level in meters |
89+
| `heading` | Double | Required if Available | Degrees - clockwise starting at 0 degrees at true North |
90+
| `speed` | Float | Required if Available | Estimated speed in meters / sec as reported by the GPS chipset |
91+
| `accuracy` | Float | Required if Available | Horizontal accuracy, in meters |
92+
| `hdop` | Float | Required if Available | Horizontal GPS or GNSS accuracy value (see [hdop][hdop]) |
93+
| `satellites` | Integer | Required if Available | Number of GPS or GNSS satellites
94+
95+
Example of a vehicle location GeoJSON [`Feature`][geojson-feature] object:
7896

7997
```json
8098
{
8199
"type": "Feature",
82100
"properties": {
83-
"timestamp": 1529968782421
101+
"timestamp": 1529968782421,
102+
"accuracy": 10,
103+
"speed": 1.21
84104
},
85105
"geometry": {
86106
"type": "Point",
@@ -127,7 +147,9 @@ For the purposes of this specification, the intersection of two geographic datat
127147

128148
**[Beta feature](/general-information.md#beta-features):** *Yes (as of 1.1.0)*
129149

130-
Geography-Driven Events is a new MDS feature for Agencies to perform complete Policy compliance monitoring without precise location data. Geography-Driven Events describe individual vehicles in realtime – not just aggregate data. However, rather than receiving the exact location of a vehicle, Agencies receive information about the vehicle's current geographic region. The regions used for Geography-Driven Events correspond to the Geographies in an Agency's current Policy. In this way, the data-shared using Geography-Driven Events is matched to an Agency's particular regulatory needs.
150+
Geography-Driven Events (GDE) is a new MDS feature for Agencies to perform complete Policy compliance monitoring without precise location data. Geography-Driven Events describe individual vehicles in realtime – not just aggregate data. However, rather than receiving the exact location of a vehicle, Agencies receive information about the vehicle's current geographic region. The regions used for Geography-Driven Events correspond to the Geographies in an Agency's current Policy. In this way, the data-shared using Geography-Driven Events is matched to an Agency's particular regulatory needs.
151+
152+
See [this example](/policy/examples/requirements.md#geography-driven-events) for how to implement GDE using [Policy Requirements](/policy#requirement).
131153

132154
Here's how it works in practice:
133155

@@ -143,9 +165,9 @@ Here's how it works in practice:
143165

144166
*Agency adds rule disallowing parking on waterfront path, begins receiving data on events within area.*
145167

146-
Agencies that wish to use Geography-Driven Events do so by requiring a new `event_geographies` field in status events. When an Agency is using Geography-Driven Events, Providers must emit a new `changed_geographies` status event whenever a vehicle in a trip enters or leaves a Geography managed by a Policy.
168+
Agencies that wish to use Geography-Driven Events do so by requiring a new `event_geographies` field in status events. When an Agency is using Geography-Driven Events, Providers must emit a new `changed_geographies` status event whenever a vehicle in a trip enters or leaves a Geography managed by a Policy.
147169

148-
During the Beta period for this feature, location and telemtry data remain required fields. This allows Aggencies to test Geography-Driven Events, measuring its accuracy and efficacy against regulatory systems based on precise location data. After the beta period, if Geography-Driven Events is deemed by OMF to be accurate and effective, the specification will evolve to allow cities to use Geography-Driven Events in lieu of location or telemtry data.
170+
During the Beta period for this feature, location and telemetry data remain required fields. This allows Agencies to test Geography-Driven Events, measuring its accuracy and efficacy against regulatory systems based on precise location data. After the beta period, if Geography-Driven Events is deemed by the OMF to be accurate and effective, the specification will evolve to allow cities to use Geography-Driven Events in lieu of location or telemetry data.
149171

150172
[Top][toc]
151173

@@ -293,7 +315,7 @@ In a multi-jurisdiction environment, the status of a vehicle is per-jurisdiction
293315

294316
### Event Types
295317

296-
Event types are the possible transitions bewteen some vehicle states.
318+
Event types are the possible transitions between some vehicle states.
297319

298320
| `event_type` | Description |
299321
|---|---|
@@ -409,12 +431,13 @@ The *State Machine Diagram* shows how `vehicle_state` and `event_type` relate to
409431
The list of allowed `vehicle_type` values in MDS. Aligning with [GBFS vehicle types form factors](https://github.com/NABSA/gbfs/blob/master/gbfs.md#vehicle_typesjson-added-in-v21-rc).
410432

411433
| `vehicle_type` | Description |
412-
|--------------| --- |
413-
| bicycle | Anything with pedals, including recumbents; can include powered assist |
414-
| car | Any automobile |
415-
| scooter | Any motorized mobility device intended for one rider |
416-
| moped | A motorcycle/bicycle hybrid that can be powered or pedaled |
417-
| other | A device that does not fit in the other categories |
434+
|---------------| --- |
435+
| bicycle | A two-wheeled mobility device intended for personal transportation that can be operated via pedals, with or without a motorized assist (includes e-bikes, recumbents, and tandems) |
436+
| cargo_bicycle | A two- or three-wheeled bicycle intended for transporting larger, heavier cargo than a standard bicycle (such as goods or passengers), with or without motorized assist (includes bakfiets/front-loaders, cargo trikes, and long-tails) |
437+
| car | A passenger car or similar light-duty vehicle |
438+
| scooter | A standing or seated fully-motorized mobility device intended for one rider, capable of travel at low or moderate speeds, and suited for operation in infrastructure shared with motorized bicycles |
439+
| moped | A seated fully-motorized mobility device capable of travel at moderate or high speeds and suited for operation in general urban traffic |
440+
| other | A device that does not fit in the other categories |
418441

419442
[Top][toc]
420443

@@ -444,6 +467,7 @@ If an unsupported or invalid version is requested, the API must respond with a s
444467

445468
[agency]: /agency/README.md
446469
[decimal-degrees]: https://en.wikipedia.org/wiki/Decimal_degrees
470+
[hdop]: https://en.wikipedia.org/wiki/Dilution_of_precision_(navigation)
447471
[gbfs-station-info]: https://github.com/NABSA/gbfs/blob/master/gbfs.md#station_informationjson
448472
[gbfs-station-status]: https://github.com/NABSA/gbfs/blob/master/gbfs.md#station_statusjson
449473
[general-stops]: /general-information.md#stops

0 commit comments

Comments
 (0)