Static API
Next to the AMQP, where more realtime data is communicated, Mobilidata also provides a static API. This API is for data that doesn't change often, like e.g. the location and information of a traffic sign.
The API collects multiple (government) data sources and functions as a one-stop-shop for all static data. It is also responsible to keep the data up-to-date. Compared to the TN-ITS feed, the static API makes sure that you get the latest data and no additional steps are required. The available data is divided into two types: point and route related information.
The following data is available via the static API:
| Type | API |
|---|---|
| Road signs | Get /road-signs/v1 |
| ARU Road signs | Get /aru-road-signs/v1 |
| Road sign feedback | Post /feedback/road-signs/v1 |
| ARU Road sign feedback | Post /feedback/aru-road-signs/v1 |
| Speed limits | Get /speed-limits/v1 |
| Speed limits feedback | Post /feedback/speed-limits/v1 |
| Parking lots | Get /parking-lots/v1 |
| Parking lot feedback | Post /feedback/parking-lots/v1 |
| Advised routes | Get /advised-routes/v1/school-zone |
| Medical facilities | Get /advised-routes/v1/medical-facility |
| Events | Get /advised-routes/v1/events |
| Bycicle streets | Get /advised-routes/v1/bycicle-streets |
| Calamity routes | Get /advised-routes/v1/ccalamity-routes |
| Advised routes feedback | Post /feedback/advised-routes/v1 |
Official documentation of the API itself, can be found here: static-data.mobilidata.vlaanderen.be/docs
Data sources
The static API is mainly based on the TN-ITS feed of the Flemish government. The reason to offer this separatly, is due to the formal setup of the TN-ITS standard. Normally, TN-ITS is started with a base set of information and then updated ever after. For service providers, this is very inconvenient. Hence, Mobilidata offers a minimal daily updated complete snapshot of the TN-ITS feed. Where possible, this dataset will be enhanced with data from other sources, offering the most complete and accurate set as possible.
For certain applications, like dynamic speed zones, data from the TN-ITS feed is combined with other sources (for example calendars) to create specific IVI messages, which are posted on the MI bus.
Mapping
General fields IVI (In Vehicle Information)
| IVIM | TN-ITS |
|---|---|
| Service ProviderID | RoadFeature.RoadFeatureSource |
| iviIdentificationNumber | |
| timestamp | RoadFeature.beginLifespanVersion |
| validFrom | RoadFeature.validFrom |
| validTo | RoadFeature.validTo |
| connectedIviStructures | |
| iviStatus: new, update, cancellation, negation | RoadFeature.Condition.negate RoadFeature.LifeCycleInfo (RoadFeature.beginLifespanVersion / RoadFeature.endLifespanVersion) RoadFeature.updateInfo |
| Geographic location container: referencePosition | RoadFeature.LocationReference |
| Geographic location container: zoneID | RoadFeature.LocationReference |
| Geographic location container: laneNumber | RoadFeature.LocationReference |
| Geographic location container: zoneHeading: direction | RoadFeature.LocationReference |
| Geographic location container: zone: linesegment | RoadFeature.LocationReference |
General fields IVI IVS (in vehicle signage)
| IVIM | TN-ITS |
|---|---|
| detectionZoneId | |
| relevanceZoneIds | |
| direction |
TN-ITS roadfeatures vs IVI IVS-DSLI (Dynamic Speed Limit Information)
| IVIM | TN-ITS |
|---|---|
| Speed is defined in ISO14823 code as attribute | RoadFeature.RoadSignProperty.RoadSignContent |
TN-ITS roadfeatures vs IVI IVS-OSI (Other Signage Information)
| IVIM | TN-ITS |
|---|---|
| applicableLanes | RoadFeature.Condition LaneCondition.startLane |
| roadSignCodes | RoadFeature.RoadSignProperty.RoadSignType |
| roadSignCode | RoadFeature.RoadSignProperty.RoadSignType RoadFeature.RoadSignProperty.RoadSignContent |
Technical implementation
A key is required to access the API. Once you have the key, you can easily check if the data comes in with following bash command:
curl -X GET -H "x-api-key:<your_key>" <base_url>/<uc_endpoint>/<version>
Example
Example Message
<tnits:RoadFeature>
<tnits:validFrom>1950-01-01</tnits:validFrom>
<tnits:validTo>9999-01-01</tnits:validTo>
<tnits:beginLifespanVersion>2023-04-13T21:11:11</tnits:beginLifespanVersion>
<tnits:endLifespanVersion>9999-01-01T00:00:00</tnits:endLifespanVersion>
<tnits:updateInfo>
<tnits:UpdateInfo>
<tnits:type>Add</tnits:type>
</tnits:UpdateInfo>
</tnits:updateInfo>
<tnits:source xlink:href="
http://spec.tn-its.eu/codelists/RoadFeatureSourceCode#fixedPlateRoadSign
"></tnits:source>
<tnits:type xlink:href="
http://spec.tn-its.eu/codelists/RoadFeatureTypeCode#roadSign
"></tnits:type>
<tnits:properties>
<tnits:RoadSignProperty>
<tnits:gddCode xlink:href="
http://spec.tn-its.eu/codelists/RoadSignTypeCode#12_117
"></tnits:gddCode>
</tnits:RoadSignProperty>
</tnits:properties>
<tnits:properties>
<tnits:GenericRoadFeatureProperty>
<tnits:type xlink:href="
http://spec.tn-its.eu/codelists/RoadFeaturePropertyTypeCode#RoadSignType
"></tnits:type>
<tnits:value>B1</tnits:value>
</tnits:GenericRoadFeatureProperty>
</tnits:properties>
<tnits:id>
<tnits:RoadFeatureId>
<tnits:providerId>Flanders Region</tnits:providerId>
<tnits:id>b8754336-0917-40a5-98eb-39555fece546</tnits:id>
</tnits:RoadFeatureId>
</tnits:id>
<tnits:locationReference>
<tnits:GeometryLocationReference>
<tnits:encodedGeometry>
<gml:Point gml:id="iaf5c118f-3308-4bb3-b8ca-65052776cf34">
<gml:coordinates>3.6857984511016233,51.17160188629828</gml:coordinates>
</gml:Point>
</tnits:encodedGeometry>
</tnits:GeometryLocationReference>
</tnits:locationReference>
<tnits:locationReference>
<tnits:OpenLRLocationReference>
<tnits:binaryLocationReference>
<tnits:BinaryLocationReference>
<tnits:base64String>KwKe/CRjgkAZAP/9AAFACQ==</tnits:base64String>
<tnits:openLRBinaryVersion xlink:href="
http://spec.tn-its.eu/codelists/OpenLRBinaryVersionCode#v1_4
"></tnits:openLRBinaryVersion>
</tnits:BinaryLocationReference>
</tnits:binaryLocationReference>
</tnits:OpenLRLocationReference>
</tnits:locationReference>
</tnits:RoadFeature>
References
Traffic signs
Descripion of the traffic signs in Belgium can be found on the following links: