Changelog
Conversietabel v2 -> v3¶
De voor locatiereferentie relevante delen van de conversietabel zoals beschikbaar op NDW docs zijn hieronder voor de volledigheid toegevoegd.
Enkele opmerkingen vooraf¶
Onderliggend aan deze mapping beschreven in dit document is voor versie 2.3 de NDW DATEX II v2.3 XSD. Voor versie 3 is gebruik gemaakt van een Europees XSD, dus zonder aangepaste enumeraties e.t.c., aangevuld met Nederlandse extensies. Waar in dit document 'versie 2.3' (of 'V2.3') wordt genoemd, wordt het Nederlands Profiel DATEX II bedoeld zoals beschreven in het Nederlands Profiel DATEX II 2015-2a (14 januari 2016).
Niet alle elementen uit het gebruikte versie 2.3 XSD worden naar versie 3 gemapt. De scope van de conversie zijn de elementen zoals beschreven in het document Nederlands Profiel DATEX II 2015-2a (14 januari 2016). Deze scope bevat minder elementen dan in het versie 2.3 XSD zijn opgenomen.
Op sommige plekken in dit document wordt daarom voor enumeraties de volledige lijst van literals uit de XSD's opgenomen en met een 'X' aangegeven welke er in het Nederlands Profiel versie 2.3 zijn opgenomen.
In DATEX II versie 3 wordt in tegenstelling tot DATEX II versie 2.3, gebruik gemaakt van meerdere namespaces. In deze documentatie zijn namespaces niet expliciet benoemd, omdat dit ten koste van de leesbaarheid van de tekst. Mocht bij de toepassing van deze documentatie in de praktijk blijken dat dit niet vermelden van namespaces een groot gemis is, dan zal uiteraard gekeken worden een praktische manier om deze informatie op te nemen.
Functionele eisen¶
- Het geconverteerde resultaat dient geen selfclosing tags te bevatten op plaatsen waar deze in de input niet aanwezig zijn.
- Als een xml-node meerdere keren voorkomt in de input, worden alle overeenkomstige xml-nodes in de output gegenereerd (itereren).
lane mapt naar lane>laneNumber en lane>laneUsage¶
| In NL Profiel v2.3? | Was LaneEnum (V2.3) |
Wordt 1 LaneEnum (V3) |
Wordt 2 laneNumber (V3) |
|---|---|---|---|
| X | allLanesCompleteCarriageway | allLanesCompleteCarriageway | |
| X | busLane | busLane | |
| busStop | busStop | ||
| carPoolLane | carPoolLane | ||
| X | centralReservation | centralReservation | |
| crawlerLane | crawlerLane | ||
| emergencyLane | emergencyLane | ||
| escapeLane | escapeLane | ||
| expressLane | expressLane | ||
| X | hardShoulder | hardShoulder | |
| heavyVehicleLane | heavyVehicleLane | ||
| X | lane1 | 1 | |
| X | lane2 | 2 | |
| X | lane3 | 3 | |
| X | lane4 | 4 | |
| X | lane5 | 5 | |
| X | lane6 | 6 | |
| X | lane7 | 7 | |
| X | lane8 | 8 | |
| X | lane9 | 9 | |
| layBy | layBy | ||
| leftHandTurningLane | leftHandTurningLane | ||
| leftLane | leftLane | ||
| localTrafficLane | localTrafficLane | ||
| middleLane | middleLane | ||
| opposingLanes | Hoeft niet gemapt te worden, element zit niet in versie 3 | ||
| overtakingLane | overtakingLane | ||
| rightHandTurningLane | rightHandTurningLane | ||
| rightLane | rightLane | ||
| X | rushHourLane | rushHourLane | |
| setDownArea | setDownArea | ||
| slowVehicleLane | slowVehicleLane | ||
| throughTrafficLane | throughTrafficLane | ||
| X | tidalFlowLane | tidalFlowLane | |
| turningLane | turningLane | ||
| verge | verge | ||
| Bestaat niet in v2.3, er is niets te converteren | cycleLane |
GroupOfLocations mapt naar LocationReference¶
Generieke elementen GroupOfLocations¶
SupplementaryPositionalDescription, originalNumberOfLanes en PointExtension mappen naar SupplementaryPositionalDescription¶
| Input klasse v2.3 |
Was v2.3 |
Wordt SupplementaryPositionalDescription (V3) |
Opmerking |
|---|---|---|---|
| SupplementaryPositionalDescription. | locationDescriptor | infrastructureDescriptor | Met behulp van enumeratie mapping |
| SupplementaryPositionalDescription. | affectedCarriagewayAndLanes.lengthAffected | lengthAffected | |
| SupplementaryPositionalDescription. | locationDescriptor | positionOnCarriageway | Met behulp van enumeratie mapping |
| SupplementaryPositionalDescription. | affectedCarriagewayAndLanes.carriageway | carriageway.carriageway | |
| Impact. | originalNumberOfLanes | carriageway.originalNumberOfLanes | |
| SupplementaryPositionalDescription. | affectedCarriagewayAndLanes.lane | carriageway.lane.laneNumber | Met behulp van enumeratie mapping |
| SupplementaryPositionalDescription. | affectedCarriagewayAndLanes.lane | carriageway.lane.laneUsage | Met behulp van enumeratie mapping |
| roadsideReferencePoint. | administrativeArea.values | namedArea.areaName.values | |
| roadsideReferencePoint. | roadName.values.value | roadInformation.roadName | |
| roadsideReferencePoint. | roadName.roadNumber | roadInformation.roadNumber |
LocationDescriptor mapt naar infrastructureDescriptor en positionOnCarriageway¶
| In NL Profiel v2.3? | Was locationDescriptor (V2.3) |
Wordt 1 infrastructureDescriptor (V3) |
Wordt 2 positionOnCarriageway (V3) |
|---|---|---|---|
| atMotorwayInterchange | atMotorwayInterchange | ||
| atRestArea | atRestArea | ||
| atServiceArea | atServiceArea | ||
| atTollPlaza | atTollPlaza | ||
| atTunnelEntryOrExit | atTunnelEntryOrExit | ||
| inGallery | inGallery | ||
| Nee, wel in data | inTunnel | inTunnel | |
| Nee, wel in data | onBridge | onBridge | |
| onConnector | onConnector | ||
| onElevatedSection | onElevatedSection | ||
| onFlyover | onFlyover | ||
| onIceRoad | onIceRoad | ||
| onLevelCrossing | onLevelCrossing | ||
| onLinkRoad | onLinkRoad | ||
| onRoundabout | onRoundabout | ||
| onTheRoadway | onTheRoadway | ||
| onUndergroundSection | onUndergroundSection | ||
| onUnderpass | onUnderpass | ||
| withinJunction | withinJunction | ||
| Nee, wel in data | onTheLeft | onTheLeft | |
| Nee, wel in data | onTheRight | onTheRight | |
| inTheCentre | inTheCentre |
openlrFunctionaRoadClassEnum mapt naar openlrFunctionalRoadClassEnum¶
| In NL Profiel v2.3? | Was openlrFunctionaRoadClassEnum (V2.3) |
Wordt openlrFunctionaRoadClassEnum (V3) |
|---|---|---|
| X | FRC0 | frc0 |
| X | FRC1 | frc1 |
| X | FRC2 | frc2 |
| X | FRC3 | frc3 |
| X | FRC4 | frc4 |
| X | FRC5 | frc5 |
| X | FRC6 | frc6 |
| X | FRC7 | frc7 |
alertCDirectionEnum mapt naar alertCDirectionEnum¶
| In NL Profiel v2.3? | Was alertCDirectionEnum (V2.3) |
Wordt alertCDirectionEnum (V3) |
|---|---|---|
| X | positive | positive |
| X | negative | negative |
| als niet voorkomt dan | positive |
De waarde van de alertCDirectionEnum blijft gelijk.
Definities:
- Versie 2.3 definitie alertCDirectionEnum = "The direction of traffic flow to which the situation, traffic data or information is related. Positive is in the direction of coding of the road."
- Versie 3 definitie alertCDirectionEnum = "Direction of navigation with respect to secondary to primary location (RDS direction)"
alertCDirectionEnum mapt naar linearDirectionEnum¶
| In NL Profiel v2.3? | Was alertCDirectionEnum (V2.3) |
Wordt linearDirectionEnum (V3) |
|---|---|---|
| X | positive | aligned |
| X | negative | aligned |
| X | both | both |
| X | unknown | unknown |
Met linearDirectionEnum wordt de rijrichting aangeduid waarop het bericht van toepassing is. We gebruiken hierbij standaard de waarde "aligned". In v3 is het enkel mogelijk de indicatie beide richtingen op te nemen met het element linearDirectionEnum.
Definities:
- Versie 2.3 definitie alertCDirectionEnum = "The direction of traffic flow to which the situation, traffic data or information is related. Positive is in the direction of coding of the road."
- Versie 3 definitie LinearDirectionEnum = "The direction(s) of traffic flow to which the situation, traffic data or information is related."
Linear mapt naar SingleRoadLinearLocation of naar LinearLocation¶
- Als in een versie 2.3 Linear AlertCLinear type AlertCMethod2Linear en AlertCLinear type AlertCMethod4Linear beiden niet zijn opgenomen en openLrExtendedLinear is wel opgenomen, dan dient de gehele inhoud van Linear te worden gemapt naar versie 3 LinearLocation
- Als in een versie 2.3 Linear minstens één van AlertCLinear type AlertCMethod2Linear of AlertCLinear type AlertCMethod4Linear is opgenomen, dan dient de gehele inhoud van Linear te worden gemapt naar versie 3 SingleRoadLinearLocation
locationForDisplay mapt naar coordinatesForDisplay¶
- locationForDisplay.latitude mapt naar coordinatesForDisplay.latitude
- locationForDisplay.longitude mapt naar coordinatesForDisplay.longitude
SupplementaryPositionalDescription mapt naar SupplementaryPositionalDescription¶
Klik hier voor de mapping naar versie 3 SupplementaryPositionalDescription.
AlertCLinear type AlertCMethod2Linear mapt naar AlertCLinear type AlertCMethod2Linear¶
De elementen van AlertCLinear type AlertCMethod2Linear mappen op twee punten na 1-op-1 van versie 2.3 naar versie 3 AlertCLinear type AlertCMethod2Linear. Hierbij hoeft element alertCDirectionNamed niet gemapt te worden (is niet opgenomen in het Nederlands Profiel versie 2.3).
- Versie 2.3 alertCDirectionCoded mapt naar versie 3 alertCDirectionCoded volgens deze enumeratie mapping
- Versie 2.3 alertCDirectionCoded mapt naar versie 3 alertCAffectedDirection volgens deze enumeratie mapping
AlertCLinear type AlertCMethod4Linear mapt naar AlertCLinear type AlertCMethod4Linear¶
De elementen van AlertCLinear type AlertCMethod4Linear mappen op twee punten na 1-op-1 van versie 2.3 naar versie 3 AlertCLinear type AlertCMethod4Linear. Hierbij hoeft element alertCDirectionNamed niet gemapt te worden (is niet opgenomen in het Nederlands Profiel versie 2.3).
- Versie 2.3 alertCDirectionCoded mapt naar versie 3 alertCDirectionCoded volgens deze enumeratie mapping
- Versie 2.3 alertCDirectionCoded mapt naar versie 3 alertCAffectedDirection volgens deze enumeratie mapping
LinearExtension¶
linearByCoordinatesExtension mapt naar gmlLineString¶
De coördinaten uit de linearByCoordinatesExtension dienen conform onderstaande tabel naar de gmlLineString gemapt te worden.
Het niet-verplichte element GmlLineString.srsDimension mag leeg worden gelaten, want de default voor de tuplegroote van de coördinaten is 2.
| In NL Profiel v2.3? | Was LinearByCoordinatesExtension (V2.3) |
Wordt GmlLineString (V3) |
Opmerking |
|---|---|---|---|
| X | linearCoordinatesStartPoint.latitude | posList.(1e positie) | Opnemen in 1e positie posList |
| X | linearCoordinatesStartPoint.longitude | posList.(2e positie) | Opnemen in 2e positie posList |
| X | linearCoordinatesEndPoint.latitude | posList.(3e positie) | Opnemen in 3e positie posList |
| X | linearCoordinatesEndPoint.longitude | posList.(4e positie) | Opnemen in 4e positie posList |
openLrExtendedLinear mapt naar openLrLinear¶
openLrExtendedLinear mapt op twee punten na 1-op-1 naar openLrLinear. De volgende twee punten dienen als volgt te worden gemapt:
- Versie 2.3 openlrCoordinate dient te mappen naar versie 3 openlrCoordinates
- Versie 2.3 openlrFunctionalRoadClass en openlrLowestFRCToNextLRPoint mappen 1-op-1 naar hetzelfde element in versie 3 als de enumeratie literals van hoofd naar kleine letters worden geconverteerd. Zie de enumeratie mapping die hier is opgenomen
Point mapt naar PointLocation¶
locationForDisplay mapt naar coordinatesForDisplay¶
- locationForDisplay.latitude mapt naar coordinatesForDisplay.latitude
- locationForDisplay.longitude mapt naar coordinatesForDisplay.longitude
SupplementaryPositionalDescription mapt naar SupplementaryPositionalDescription¶
Klik hier voor de mapping naar versie 3 SupplementaryPositionalDescription.
alertCPoint type AlertCMethod2Point mapt naar alertCPoint type AlertCMethod2Point¶
De elementen van alertCPoint type AlertCMethod2Point mappen op twee punten na 1-op-1 van versie 2.3 naar versie 3 alertCPoint type AlertCMethod2Point. Hierbij hoeft element alertCDirectionNamed niet gemapt te worden (is niet opgenomen in het Nederlands Profiel versie 2.3).
- Versie 2.3 alertCDirectionCoded mapt naar versie 3 alertCDirectionCoded volgens deze enumeratie mapping
- Versie 2.3 alertCDirectionCoded mapt naar versie 3 alertCAffectedDirection volgens deze enumeratie mapping
alertCPoint type AlertCMethod4Point mapt naar alertCPoint type AlertCMethod4Point¶
De elementen van alertCPoint type AlertCMethod4Point mappen op twee punten na 1-op-1 van versie 2.3 naar versie 3 alertCPoint type AlertCMethod4Point. Hierbij hoeft element alertCDirectionNamed niet gemapt te worden (is niet opgenomen in het Nederlands Profiel versie 2.3).
- Versie 2.3 alertCDirectionCoded mapt naar versie 3 alertCDirectionCoded volgens deze enumeratie mapping
- Versie 2.3 alertCDirectionCoded mapt naar versie 3 alertCAffectedDirection volgens deze enumeratie mapping
openlrPointAlongLine mapt naar openlrPointLocationReference type OpenlrPointAlongLine¶
Example
<openlrPointAlongLine>
<openlrSideOfRoad>onRoadOrUnknown</openlrSideOfRoad>
<openlrOrientation>noOrientationOrUnknown</openlrOrientation>
<openlrPositiveOffset>184</openlrPositiveOffset>
<openlrLocationReferencePoint>
<openlrCoordinate>
<latitude>52.0115128</latitude>
<longitude>4.45868063</longitude>
</openlrCoordinate>
<openlrLineAttributes>
<openlrFunctionalRoadClass>FRC3</openlrFunctionalRoadClass>
<openlrFormOfWay>multipleCarriageway</openlrFormOfWay>
<openlrBearing>223</openlrBearing>
</openlrLineAttributes>
<openlrPathAttributes>
<openlrLowestFRCToNextLRPoint>FRC3</openlrLowestFRCToNextLRPoint>
<openlrDistanceToNextLRPoint>1302</openlrDistanceToNextLRPoint>
</openlrPathAttributes>
</openlrLocationReferencePoint>
<openlrLastLocationReferencePoint>
<openlrCoordinate>
<latitude>52.001442</latitude>
<longitude>4.45368862</longitude>
</openlrCoordinate>
<openlrLineAttributes>
<openlrFunctionalRoadClass>FRC3</openlrFunctionalRoadClass>
<openlrFormOfWay>multipleCarriageway</openlrFormOfWay>
<openlrBearing>59</openlrBearing>
</openlrLineAttributes>
</openlrLastLocationReferencePoint>
</openlrPointAlongLine>
<loc:openlrPointLocationReference xmlns="http://datex2.eu/schema/3/locationReferencing" xsi:type="loc:OpenlrPointAlongLine">
<loc:openlrSideOfRoad>onRoadOrUnknown</loc:openlrSideOfRoad>
<loc:openlrOrientation>noOrientationOrUnknown</loc:openlrOrientation>
<loc:openlrLocationReferencePoint>
<loc:openlrCoordinates>
<loc:latitude>52.01151</loc:latitude>
<loc:longitude>4.458681</loc:longitude>
</loc:openlrCoordinates>
<loc:openlrLineAttributes>
<loc:openlrFunctionalRoadClass>frc3</loc:openlrFunctionalRoadClass>
<loc:openlrFormOfWay>multipleCarriageway</loc:openlrFormOfWay>
<loc:openlrBearing>223</loc:openlrBearing>
</loc:openlrLineAttributes>
<loc:openlrPathAttributes>
<loc:openlrLowestFrcToNextLRPoint>frc3</loc:openlrLowestFrcToNextLRPoint>
<loc:openlrDistanceToNextLRPoint>1302</loc:openlrDistanceToNextLRPoint>
</loc:openlrPathAttributes>
</loc:openlrLocationReferencePoint>
<loc:openlrLastLocationReferencePoint>
<loc:openlrCoordinates>
<loc:latitude>52.00144</loc:latitude>
<loc:longitude>4.453689</loc:longitude>
</loc:openlrCoordinates>
<loc:openlrLineAttributes>
<loc:openlrFunctionalRoadClass>frc3</loc:openlrFunctionalRoadClass>
<loc:openlrFormOfWay>multipleCarriageway</loc:openlrFormOfWay>
<loc:openlrBearing>59</loc:openlrBearing>
</loc:openlrLineAttributes>
</loc:openlrLastLocationReferencePoint>
<loc:openlrOffsets>
<loc:openlrPositiveOffset>184</loc:openlrPositiveOffset>
</loc:openlrOffsets>
</loc:openlrPointLocationReference>
pointByCoordinates mapt naar pointByCoordinates¶
- pointByCoordinates.pointCoordinates.latitude mapt naar pointByCoordinates.pointCoordinates.latitude
- pointByCoordinates.pointCoordinates.longitude mapt naar pointByCoordinates.pointCoordinates.longitude
Noot: Het element pointByCoordinates.bearing is geen onderdeel van het Nederlands Profiel versie 2.3.
pointExtension>pointExtension>roadsideReferencePoint mapt naar SupplementaryPositionalDescription¶
Klik hier voor de mapping van roadsideReferencePoint naar versie 3 SupplementaryPositionalDescription.
pointExtension>openLrExtendedPoint>openLrPointAlongLine mapt naar openLrPointLocationReference type OpenlrPointAlongLine¶
openLrPointAlongLine mapt op twee punten na 1-op-1 naar openLrPointLocationReference type OpenlrPointAlongLine. De volgende twee punten dienen als volgt te worden gemapt:
- Versie 2.3 openlrCoordinate dient te mappen naar versie 3 openlrCoordinates
- Versie 2.3 openlrFunctionalRoadClass en openlrLowestFRCToNextLRPoint mappen 1-op-1 naar hetzelfde element in versie 3 als de enumeratie literals van hoofd naar kleine letters worden geconverteerd. Zie de enumeratie mapping die hier is opgenomen
NonOrderedLocationGroupByList mapt naar LocationGroupByList¶
Zowel versie 2.3 NonOrderedLocationGroupByList als versie 3 LocationGroupByList bevatten het element locationContainedInGroup. Het type van locationContainedInGroup wordt gekozen afhankelijk van de toepassing.
- Versie 2.3 Linear kan mappen naar versie 3 LinearLocation of SingleRoadLinearLocation; kijk hier voor meer detail
- Versie 2.3 Point mapt naar versie 3 PointLocation; kijk hier voor meer detail
In het Nederlands Profiel v2.3 wordt gesteld: "Het type van de locationContainedInGroup wordt gekozen afhankelijk van de toepassing. NDW gebruikt dit specialisme voor gebeurtenissen met het volgende type locatie: een polygoon".
Echter, in de NDW-datastroom sb-data in de periode van oktober 2018 t/m juli 2022, is voor NonOrderedLocationGroupByList nooit een polygoonlocatie aangetroffen. Mede hierom is de mapping van NonOrderedLocationGroupByList voor een polygoon tot op heden nog niet uitgewerkt.
Het gebruik van versie 2.3 NonOrderedLocationGroupByList type Point is aangetroffen in de NDW wegwerkzaamhedenfeed.
Area mapt naar AreaLocation¶
locationForDisplay mapt naar coordinatesForDisplay¶
- locationForDisplay.latitude mapt naar coordinatesForDisplay.latitude
- locationForDisplay.longitude mapt naar coordinatesForDisplay.longitude
alertCArea mapt naar alertCArea¶
De elementen van alertCArea mappen 1-op-1 van versie 2.3 naar versie 3 alertCArea.
areaExtension>areaExtension>areaExtended>polygonArea¶
De extensie areaExtension bevat de polygonArea. In de NDW-datastroom sb-data in de periode van oktober 2018 t/m juli 2022, is nooit een polygoonlocatie aangetroffen. Mede hierom is de mapping voor een polygoon tot op heden nog niet uitgewerkt.
Indien er gebruik gemaakt wordt van een gebiedsbeschrijving op basis van een polygoon in DATEXII v3, dan dient hiervoor gmlMultiPolygon te worden gebruikt.
areaExtension>openlrExtendedArea¶
Gebruik van de extensie openlrExtendedArea is niet geconstateerd in de NDW-datastroom sb-data voor de periode van oktober 2018 t/m juli 2022. Mede hierom is de mapping van openlrExtendedArea tot op heden nog niet uitgewerkt.
ItineraryByIndexedLocations mapt naar ItineraryByIndexedLocations¶
De mapping van versie 2.3 ItineraryByIndexedLocations naar versie 3 ItineraryByIndexedLocations dient als onderstaand beschreven te gebeuren. Verwijzingen naar benodigde sub-mappings zijn opgenomen.
- Versie 2.3 routeDestination type AreaDestination mapt naar versie 3 routeDestination type AreaDestination
- Area mapt naar AreaLocation, zie hier
- Versie 2.3 routeDestination type PointDestination mapt naar versie 3 routeDestination type PointDestination
- Point mapt naar PointLocation, zie hier
- Versie 2.3 locationContainedInItinerary mapt naar versie 3 locationContainedInItinerary