You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -138,6 +138,8 @@ More than 115 cities and public agencies around the world use MDS, and it has be
138
138
139
139
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.
140
140
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).
CA,British Columbia,Kelowna,City of Kelowna,31e836fc-72da-4b2e-b553-8227d77a9b7a,https://www.kelowna.ca/roads-transportation/active-transportation/cycling/bikeshare-permit-program,
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,
@@ -57,6 +58,7 @@ Defining terminology and abbreviations used throughout MDS.
57
58
***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.
58
59
***API Endpoint** - A point at which an API connects with a software application or service.
59
60
***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.
60
62
***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.
61
63
62
64
[Top][toc]
@@ -73,14 +75,32 @@ Additionally, `device_id` must remain constant for the device's lifetime of serv
73
75
74
76
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.
75
77
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 |
|`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:
78
96
79
97
```json
80
98
{
81
99
"type": "Feature",
82
100
"properties": {
83
-
"timestamp": 1529968782421
101
+
"timestamp": 1529968782421,
102
+
"accuracy": 10,
103
+
"speed": 1.21
84
104
},
85
105
"geometry": {
86
106
"type": "Point",
@@ -127,7 +147,9 @@ For the purposes of this specification, the intersection of two geographic datat
127
147
128
148
**[Beta feature](/general-information.md#beta-features):***Yes (as of 1.1.0)*
129
149
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).
131
153
132
154
Here's how it works in practice:
133
155
@@ -143,9 +165,9 @@ Here's how it works in practice:
143
165
144
166
*Agency adds rule disallowing parking on waterfront path, begins receiving data on events within area.*
145
167
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.
147
169
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.
149
171
150
172
[Top][toc]
151
173
@@ -293,7 +315,7 @@ In a multi-jurisdiction environment, the status of a vehicle is per-jurisdiction
293
315
294
316
### Event Types
295
317
296
-
Event types are the possible transitions bewteen some vehicle states.
318
+
Event types are the possible transitions between some vehicle states.
297
319
298
320
|`event_type`| Description |
299
321
|---|---|
@@ -409,12 +431,13 @@ The *State Machine Diagram* shows how `vehicle_state` and `event_type` relate to
409
431
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).
410
432
411
433
|`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 |
418
441
419
442
[Top][toc]
420
443
@@ -444,6 +467,7 @@ If an unsupported or invalid version is requested, the API must respond with a s
0 commit comments