Skip to main content

MAPEM

Version

Look for the current version via the link in the table at the message-type introduction page

caution

As of mid november 2024, Mobilidata has changed version regarding AMQP headers (version 0.9 to 1.0). This is caused by changes in the C-Roads (TF4 spec release 2.1.0) specification.

Description

When a iTLC is designed, there is a so called ITF description file made. this ITF describes all lanes, connections, signalgroups, approaches, detection equipment and more. This ITF is the base material for a MAP message, which contains a subset of the ITF information, in a compact ETSI defined format. The MAP message is a static information message, the dynamic data is, for example, send in SPAT messages.

The lane descriptions, and optional the connections, provide all the geographic location information to form the iTLC geofence.

MAP messages are not restricted to a single intersection. Typically, there is one MAP per traffic light controller, which can handle multiple intersections.

Usage

The MAPEM contains all the information, needed for the iTLC operations in Mobilidata:

  • Reference point(s) In most cases, this is the center point of the intersection, used as reference when detecting iTLC in a QuadKey.
  • Ingress and egress lanes Describing explicitly the geographical position of the ingoing and outgoing lanes as well as implicit the geofence of the iTLC.
  • Possible connections between the in- and egress lanes Optional, the connections between the lanes are given. One lane can serve multiple connections.
  • Signalgroups Not to confuse with connections: one signalgroup can contain multiple (ingress) lanes.
  • Approach numbering Important for absolute priority requests is the inwards direction, independend of lane information.
  • Vehicle category for and with of the different lanes

The next figure shows an example of reference point(trafficlight synbol), approaches, ingress(red), egress(blue) and connections(purple):

caution

Data packages are encoded/decoded to ASN.1 standard, using the 'UPER' encoding rules.

Attributes

"MapData": {
...
"Intersections": [
{
"Name": "142C4-1",
"Id": {
"Region": 4001,
"Id": 601
},
...
},
...
],
...
},
...

The MAPEM message contains a list of relevant intersections. These intersections are identified by a Name and an Id. The Id is a combination of a Region and an Id.

"MapData": {
...
"Intersections": [
{
...
"RefPoint": {
"Lat": 509265330,
"Lng": 44338695,
"Elevation": null,
"Regional": null
},
...
},
...
],
...
},
...

Each intersection contains a RefPoint which is the reference point of the intersection. This reference point contains the Lat and Lng of the intersection. To get the values of Latitude and Longitude in WGS84, the following calculation has to be applied: WGS84 Latitude = Latitude * 1e-7 and WGS84 Longitude = Longitude * 1e-7.

"MapData": {
...
"Intersections": [
{
...
"LaneSet": [
{
"LaneID": 1,
"Name": "A ing",
"IngressApproach": 1,
"EgressApproach": null,
...
},
...
],
...
},
...
],
...
},

LaneSet contains a list of lanes for the intersection. The LaneSet contains a LaneID, a Name and an Approach. The LaneID is the unique identifier of the lane. The Name is the name of the lane. The lane is either an IngressApproach or an EgressApproach.

"MapData": {
...
"Intersections": [
{
...
"LaneSet": [
{
...
"NodeList": {
"Nodes": [
{
"Delta": {
"Node_XY1": null,
"Node_XY2": null,
"Node_XY3": null,
"Node_XY4": {
"X": -1246,
"Y": -2762
},
"Node_XY5": null,
"Node_XY6": null,
"Node_LatLon": null,
"Regional": null
},
...
},
...
],
...
},
...
},
...
],
...
},
...
],
...
},

LaneSet also contains the geometry of the lane. This geometry is stored in NodeList. NodeList contains a list of Nodes. Each Node contains a Delta which contains the X and Y deltas for the node. These Nodes are multiline strings described by delta values from the previous points.

"MapData": {
...
"Intersections": [
{
...
"LaneSet": [
{
...
"ConnectsTo": [
{
"ConnectingLane": {
"Lane": 11,
...
},
"RemoteIntersection": null,
"Signalgroup": 2,
"UserClass": null,
"ConnectionID": 5
},
...
],
...
},
...
],
...
},
...
],
...
},

The LaneSet also contains a list of ConnectsTo. Each ConnectsTo contains a ConnectingLane, a Signalgroup and a ConnectionID. The ConnectingLane is the lane that is connected to the current lane. The Signalgroup is the signal group of this connection and the ConnectionID is the unique identifier of the connection.

"MapData": {
...
"Intersections": [
{
...
"LaneSet": [
{
...
"Regional": [
{
"RegionID": 3,
"Nodes": [
{
"Delta": {
"Node_XY1": null,
"Node_XY2": null,
"Node_XY3": null,
"Node_XY4": {
"X": -1246,
"Y": -2762
},
"Node_XY5": null,
"Node_XY6": null,
"Node_LatLon": null,
"Regional": null
},
...
},
...
],
"ConnectionID": 5
},
],
...
},
...
],
...
},
...
],
...
},

The Regional attribute is a list of regional nodes. Each regional node contains a RegionID and a list of Nodes. The RegionID is the unique identifier of the region. This attribute describes the geometry of the connection between lanes, based on the ConnectionID. The Nodes are multiline strings described by delta values from the previous points.

Example

An extended description of the MAPEM ASN.1 can be found here.

MAPEM AMQP Header example
{
"id": ",4001-361,4001-362,",
"custom-mobilidata-tlcID": "0fa10168",
"quadTree": ",120202123030000313,120202123030001201,",
"timestamp": "1712306408620",
"messageType": "MAPEM",
"publisherId": "BE00004",
"publicationId": "BE00004:MAPEM_02",
"baselineVersion": "2.1.0",
"custom-mobilidata-dtapEnvironment": "production",
"protocolVersion": "MAPEM:1.3.1",
"originatingCountry": "BE",
"custom-mobilidata-origin-timestamp": "1712306408614",
"custom-mobilidata-baselineVersion": "D",
}

When receiving a MAPEM message, the AMQP header will contain some extra information that is not included in the MAPEM message itself. This information can be used to filter and process the message.

  • quadTree: The quadtree of the message. This can be used to filter the message on the location based on quadkeys.
  • tlcID: The identifier of the Traffic Light Controller that sent the message.
MAPEM Message example
02050FA102584A367538003833168CA1B45AC61F4204B20453FFAEB26DEE600702580515B0AB2808905069DD9C5080000105AC88A6C8002A6903C61000C2AF08435AE4137ED80100312AE0C4805526C27757084FC242021E41855017309FF5081246ED025220404EFC1D09D6664126A6E849FA5B633D800EC1617000040A0191881AC88A6C09EF5D04CB78025AAB8151E2809F2E70543A78285CC4356BB10A7734481432811505072D39F47441A776754200000116D603DF2000A958C378400402C656AD8E476810045ADFAAB1D64008A4C886340040583100008200664346D603DF065861A0467258245908129C700A524104DB0F827285817441809BDF804D4F6826078C12A3B20919CE055CDB020CA06542D3AF2A0D987765410458084000022A85F1E240012B1FD9E3B817D68808CC800549EA0A4728812023BC4A325FA0130A9098F63C12BEF6C27A64A84F957D0135B28160DBC0DD63C035BA4016377880B2C6856270000E00B06200071140C4010A17C7883633CF821C91C33E76780000C8840A17C78811447C09564604A314027889813E42409CDFC04BCF302237A41513662214010586832F8D3D048800000012050C995C3D96F119414484834EECE58440000181220002AF25C3EE5001041142AC4800A8D989F2004118EAD4C00A0207C1A2917FC1E40F236ABF35822000185AC2C8000C316264000626B034000314C0CF080F25C3EE1A3FB3AC06C65003652081B48C00DAC4806DA1703710501B98000DE3E805E9CB0382EC818666C0C73060659730340B3017F45009584C1600C8C40F25C3EE0A11D2C22D3F7B03137681B4BB80ECDD407E2E3042F8C8240CC813065C1800CBC60F25C3EE013FD78543E320243A38198A7C0E6CAA044B6302CBAF81BDB1C0EB55A07A69503FB5B8211A2C112D002600CB058F25C3EE026B6B80D7E8C0817020307F20193DF81429400A64420575D202A0AE818F4280EE35A07D1F114014018588832F8D3D0A888000030244000415DB9220AE606D055BA7461D3664C5AA69643E1B243DD41C2C2B989130204000001537A3EE800207959805844000401006240C537A3EE095F2705059C8271DC015171604EA101615CC88981020000009F52D4D00041154C40B07800080300C48187D4B5302DA4C01772540C89740680BD0319424486834EECE68400000129E6F791000534C3C60800819FDB611F47F8C0080202C120001424031306279BDE40B0B1C026080C4033A5E01BF53C24650A261A0D99737441A77673C2000000C091000315185AFA80029A51EC4400354E3E8B30020064AB93F3004B3A00651F161414624860E6470693D80B5BE7F4987D46C42E07857179233F93BDF5A9C160C800081401958B14616BE81C141C0F5B0607A50C03FCC3020B4481199520958BB048C9A824D50812929C09ED1206DC2F0528058B05065F1A7A191000000029D7D202C692D27A3A860589731336040800000271FFC4400104CEEB02C360002434030C021C7FF1027965D806DAF034750D0B12E6466C0810000005348E9DA00081998841619000121C0184801348E9D87D728A0E32871283969CFA3A20D3BB3A211000004A3BAAD640014869A50200204DACD440D7BC24020502868056084000C0CB06800060740CE0788EEAB5811DBF60929D80484E80238728118B8609459F0482D3022C76011FB4E08BD5303B28681A63E00EB2B806F128033A7A05A31F90600C88408EEAB581383C20919D70524CD02E14EC171A220B84F7063A46033B1001DC01A0E1943C98883665CDD1069DD9D10880000151F9DBFA000A43E5471000D47A9308C0080182C2D000182003281423F3B7F0624EA032479C17B3F00B061E05392102528A412246208E235047F2A022B944111CB41065110B1AE628C08100000052CEE5EA000821B9741625000141E01860112CEE5E81761100A78501E3289058D732460408000002431528400103BECA02C46000284003090010C54A034EBCA88065132A169D79506CC3BB2A086EC0420000024F0092E80022A75F6124B17847962A76819C56070000E02B06400071240C40107804970B0C2D807ADCD0A6902402000C7C38780497038EA201C53F80F0A3807E5380416AA022650812DABC0B152312018050A85A75E541330EECA82132010800001179B31A82002834B8385BA4A5A2E894CA17CAA25974885424D805498483665CDD1069DD9C9080000015F0D82B2A00A0187D90C32607EB50300F990B4EBCA839E8C3CB2E4411110884000002B221D92940100F2AE074632B0579A7C900118080488832E7E4884400003B4D7267285001020FAC58131E780F6E5A09E73605C58893223B0C038D27613E8C875CC0B4EBC1A50E784B260C992D62C16B164