Ga naar inhoud

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
    • Area mapt naar AreaLocation, zie hier
    • Linear mapt naar LinearLocation of SingleRoadLinearLocation, zie hier
    • Point mapt naar PointLocation, zie hier