DATEX II rerouting events

The standard DATEX II manages rerouting events (for example, <situationRecord> node with type set to ReroutingManagement). .

Optima provides additional capabilities, added as DATEX II extensions:

Important:  Before creating or updating a rerouting event, you can read Optima rerouting events through the API → Getting all traffic events.

All rerouting properties are under the main node <d2LogicalModel>/<payloadPublication>/<situation>/<situationRecord>.

In the table, the relevant properties for rerouting events, with additional properties provided by the extensions.

Property DATEX II Optima extensions Description
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<d2LogicalModel xmlns="...">
........
        <groupOfLocations xsi:type="ItineraryByIndexedLocations">
........
</d2LogicalModel>

NO

Contains the main path.

The order of the locations is important, hence the type must be set to ItineraryByIndexedLocations.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<d2LogicalModel xmlns="...">
........
        <groupOfLocations xsi:type="ItineraryByIndexedLocations">
            <locationContainedInItinerary index="1">
                <location xsi:type="Linear">
                    <linearExtension>
                        <linearLocationTDE xsi:type="StreetLocationTDE">
                            <streetID>127</streetID>
                            <tailStreetNodeID>3152</tailStreetNodeID>
                        </linearLocationTDE>
                    </linearExtension>
                </location>
            </locationContainedInItinerary>
        </groupOfLocations>
........
</d2LogicalModel>

YES

Each of these entries represents a single street of the path.

The type must be set to StreetLocationTDE, which contains:

  • streetID
  • tailStreetNodeID

Important:  The street information must be specified otherwise the event is rejected.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<d2LogicalModel xmlns="...">
........
        <alternativeRoute xsi:type="ItineraryByIndexedLocations">
........
</d2LogicalModel>

NO

Contains an alternative path.

The order of the locations is important, hence the type must be set to ItineraryByIndexedLocations.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<d2LogicalModel xmlns="...">
........
        <alternativeRoute xsi:type="ItineraryByIndexedLocations">
            <locationContainedInItinerary index="1">
                <location xsi:type="Linear">
                    <linearExtension>
                        <linearLocationTDE xsi:type="StreetLocationTDE">
                            <streetID>31301</streetID>
                            <tailStreetNodeID>15022</tailStreetNodeID>
                        </linearLocationTDE>
                    </linearExtension>
                </location>
            </locationContainedInItinerary>
            <locationContainedInItinerary index="2">
                <location xsi:type="Linear">
                    <linearExtension>
                        <linearLocationTDE xsi:type="StreetLocationTDE">
                            <streetID>50</streetID>
                            <tailStreetNodeID>4501</tailStreetNodeID>
                        </linearLocationTDE>
                    </linearExtension>
                </location>
            </locationContainedInItinerary>
........
</d2LogicalModel>

YES

Each of these entries represents a single street of the path.

The type must be set to StreetLocationTDE, which contains:

  • streetID
  • tailStreetNodeID

Important:  The street information must be specified otherwise the event is rejected.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<d2LogicalModel xmlns="...">
........
        <alternativeRoute xsi:type="ItineraryByIndexedLocations">
            <itineraryExtension>
                <itineraryWithCompliance>
                    <compliance>0.6</compliance>
                </itineraryWithCompliance>
            </itineraryExtension>
        </alternativeRoute>
........
        <alternativeRoute xsi:type="ItineraryByIndexedLocations">
            <locationContainedInItinerary index="1">
                <location xsi:type="Linear">
                    <linearExtension>
                        <linearLocationTDE xsi:type="StreetLocationTDE">
                            <streetID>194</streetID>
                            <tailStreetNodeID>4606</tailStreetNodeID>
                        </linearLocationTDE>
                    </linearExtension>
                </location>
            </locationContainedInItinerary>
            <locationContainedInItinerary index="2">
........
            </locationContainedInItinerary>
            <itineraryExtension>
                <itineraryWithCompliance>
                    <compliance>0.2</compliance>
                </itineraryWithCompliance>
            </itineraryExtension>
        </alternativeRoute>
........
</d2LogicalModel>

YES

The conformity of an alternative route identifies the quota of users that deviates on this path, and is represented by a number between 0 and 1.

The conformity value of the main route is set as:

(1 - sum of all the conformity values ​​of the alternative routes).

Important:  The /.../locationContainedInItinerary[@index] must be populated with an integer number representing the order of the locations.