Fahrtrichtung über LCL ermitteln

Hallo,

ich habe mich ein wenig eingelesen und arbeite zur Zeit mit der Location Code List von bast (http://www.bast.de/DE/Home/home_node.html).

Zu dem bekomme ich alle Baustellen in Deutschland als XML file aus dem MDM Portal.
Diese XML Datei beinhaltet unter anderem den Location Code für die Baustellen. Über die geo Daten lässt sich leider nicht exakt feststellen, in welcher Fahrtrichtung die Baustelle auftritt.

Ich habe bereits gelesen, dass sich die Fahrtrichtung über den negativen bzw. positiven offset herausfinden lässt, jedoch ist mir noch nicht ganz klar wie?

Auf der Karte auf der bast Seite, gibt es auch ein Hinweis in welche Richtung die Baustelle ist z.B. Richtung Saarbrücken (http://www.bast.de/DE/Fahrzeugtechnik/Baustelleninformation/baustelleninformation.html?nn=605036).
Es ist mir ein Rätsel, wie sich das anhand der Daten aus dem XML feststellen lässt.

Hier ein kleiner Ausschnitt aus der XML Datei

<situation id="439_3_153475" version="1502118021780">
					<headerInformation>
						<confidentiality>noRestriction</confidentiality>
						<informationStatus>real</informationStatus>
					</headerInformation>
					<situationRecord xsi:type="ConstructionWorks" id="439_3_153475" version="1502118021780">
						<situationRecordCreationTime>2017-08-07T17:00:21.780+02:00</situationRecordCreationTime>
						<situationRecordVersionTime>2017-08-07T17:00:21.780+02:00</situationRecordVersionTime>
						<probabilityOfOccurrence>certain</probabilityOfOccurrence>
						<validity>
							<validityStatus>definedByValidityTimeSpec</validityStatus>
							<validityTimeSpecification>
								<overallStartTime>2017-02-20T00:00:00.000+01:00</overallStartTime>
								<overallEndTime>2017-11-14T23:59:00.000+01:00</overallEndTime>
							</validityTimeSpecification>
						</validity>
						<impact>
							<trafficConstrictionType>lanesBlocked</trafficConstrictionType>
							<impactExtension>
								<impactExtended>
									<impactOnRoadLayout>DII/2</impactOnRoadLayout>
									<trackCrossSection>uuoo2xxx</trackCrossSection>
								</impactExtended>
							</impactExtension>
						</impact>
						<generalPublicComment>
							<comment>
								<values>
									<value lang="de">Anbau von Fahrstreifen</value>
								</values>
							</comment>
						</generalPublicComment>
						<groupOfLocations xsi:type="Linear">
							<supplementaryPositionalDescription>
								<affectedCarriagewayAndLanes>
									<carriageway>mainCarriageway</carriageway>
									<lengthAffected>8300.0</lengthAffected>
								</affectedCarriagewayAndLanes>
							</supplementaryPositionalDescription>
							<alertCLinear xsi:type="AlertCMethod2Linear">
								<alertCLocationCountryCode>de</alertCLocationCountryCode>
								<alertCLocationTableNumber>15</alertCLocationTableNumber>
								<alertCLocationTableVersion>15.1.D-160122</alertCLocationTableVersion>
								<alertCDirection>
									<alertCDirectionCoded>negative</alertCDirectionCoded>
								</alertCDirection>
								<alertCMethod2PrimaryPointLocation>
									<alertCLocation>
										<alertCLocationName>
											<values>
												<value lang="de">Helmstadt</value>
											</values>
										</alertCLocationName>
										<specificLocation>10851</specificLocation>
									</alertCLocation>
								</alertCMethod2PrimaryPointLocation>
								<alertCMethod2SecondaryPointLocation>
									<alertCLocation>
										<alertCLocationName>
											<values>
												<value lang="de">Marktheidenfeld</value>
											</values>
										</alertCLocationName>
										<specificLocation>10853</specificLocation>
									</alertCLocation>
								</alertCMethod2SecondaryPointLocation>
							</alertCLinear>
							<linearWithinLinearElement>
								<linearElement>
									<roadNumber>A3</roadNumber>
								</linearElement>
								<fromPoint xsi:type="DistanceFromLinearElementReferent">
									<distanceAlong>249700.0</distanceAlong>
									<fromReferent>
										<referentIdentifier>Linear Element Origin</referentIdentifier>
										<referentType>referenceMarker</referentType>
									</fromReferent>
									<towardsReferent>
										<referentIdentifier>Linear Element Destination</referentIdentifier>
										<referentType>referenceMarker</referentType>
									</towardsReferent>
								</fromPoint>
								<toPoint xsi:type="DistanceFromLinearElementReferent">
									<distanceAlong>258000.0</distanceAlong>
									<fromReferent>
										<referentIdentifier>Linear Element Origin</referentIdentifier>
										<referentType>referenceMarker</referentType>
									</fromReferent>
									<towardsReferent>
										<referentIdentifier>Linear Element Destination</referentIdentifier>
										<referentType>referenceMarker</referentType>
									</towardsReferent>
								</toPoint>
							</linearWithinLinearElement>
						</groupOfLocations>
						<operatorActionExtension>
							<operatorActionExtended>
								<temporarySpeedLimit>80.0</temporarySpeedLimit>
							</operatorActionExtended>
						</operatorActionExtension>
						<roadworksExtension>
							<roadworksExtended>
								<internalRoadworksIdentifier>F</internalRoadworksIdentifier>
							</roadworksExtended>
						</roadworksExtension>
						<constructionWorkType>roadWideningWork</constructionWorkType>
					</situationRecord>
					<situationRecord xsi:type="ConstructionWorks" id="439_3_153475-opp" version="1502118021780">
						<situationRecordCreationTime>2017-08-07T17:00:21.780+02:00</situationRecordCreationTime>
						<situationRecordVersionTime>2017-08-07T17:00:21.780+02:00</situationRecordVersionTime>
						<probabilityOfOccurrence>certain</probabilityOfOccurrence>
						<validity>
							<validityStatus>definedByValidityTimeSpec</validityStatus>
							<validityTimeSpecification>
								<overallStartTime>2017-02-20T00:00:00.000+01:00</overallStartTime>
								<overallEndTime>2017-11-14T23:59:00.000+01:00</overallEndTime>
							</validityTimeSpecification>
						</validity>
						<impact>
							<trafficConstrictionType>lanesBlocked</trafficConstrictionType>
							<impactExtension>
								<impactExtended>
									<impactOnRoadLayout>DII/2</impactOnRoadLayout>
									<trackCrossSection>xxx2uuoo</trackCrossSection>
								</impactExtended>
							</impactExtension>
						</impact>
						<generalPublicComment>
							<comment>
								<values>
									<value lang="de">Anbau von Fahrstreifen</value>
								</values>
							</comment>
						</generalPublicComment>
						<groupOfLocations xsi:type="Linear">
							<supplementaryPositionalDescription>
								<affectedCarriagewayAndLanes>
									<carriageway>mainCarriageway</carriageway>
									<lengthAffected>8300.0</lengthAffected>
								</affectedCarriagewayAndLanes>
							</supplementaryPositionalDescription>
							<alertCLinear xsi:type="AlertCMethod2Linear">
								<alertCLocationCountryCode>de</alertCLocationCountryCode>
								<alertCLocationTableNumber>15</alertCLocationTableNumber>
								<alertCLocationTableVersion>15.1.D-160122</alertCLocationTableVersion>
								<alertCDirection>
									<alertCDirectionCoded>positive</alertCDirectionCoded>
								</alertCDirection>
								<alertCMethod2PrimaryPointLocation>
									<alertCLocation>
										<alertCLocationName>
											<values>
												<value lang="de">Marktheidenfeld</value>
											</values>
										</alertCLocationName>
										<specificLocation>10853</specificLocation>
									</alertCLocation>
								</alertCMethod2PrimaryPointLocation>
								<alertCMethod2SecondaryPointLocation>
									<alertCLocation>
										<alertCLocationName>
											<values>
												<value lang="de">Helmstadt</value>
											</values>
										</alertCLocationName>
										<specificLocation>10851</specificLocation>
									</alertCLocation>
								</alertCMethod2SecondaryPointLocation>
							</alertCLinear>
							<linearWithinLinearElement>
								<linearElement>
									<roadNumber>A3</roadNumber>
								</linearElement>
								<fromPoint xsi:type="DistanceFromLinearElementReferent">
									<distanceAlong>258000.0</distanceAlong>
									<fromReferent>
										<referentIdentifier>Linear Element Origin</referentIdentifier>
										<referentType>referenceMarker</referentType>
									</fromReferent>
									<towardsReferent>
										<referentIdentifier>Linear Element Destination</referentIdentifier>
										<referentType>referenceMarker</referentType>
									</towardsReferent>
								</fromPoint>
								<toPoint xsi:type="DistanceFromLinearElementReferent">
									<distanceAlong>249700.0</distanceAlong>
									<fromReferent>
										<referentIdentifier>Linear Element Origin</referentIdentifier>
										<referentType>referenceMarker</referentType>
									</fromReferent>
									<towardsReferent>
										<referentIdentifier>Linear Element Destination</referentIdentifier>
										<referentType>referenceMarker</referentType>
									</towardsReferent>
								</toPoint>
							</linearWithinLinearElement>
						</groupOfLocations>
						<operatorActionExtension>
							<operatorActionExtended>
								<temporarySpeedLimit>80.0</temporarySpeedLimit>
							</operatorActionExtended>
						</operatorActionExtension>
						<roadworksExtension>
							<roadworksExtended>
								<internalRoadworksIdentifier>F</internalRoadworksIdentifier>
							</roadworksExtended>
						</roadworksExtension>
						<constructionWorkType>roadWideningWork</constructionWorkType>
					</situationRecord>
				</situation>

Ich hoffe jemand kann mir hier weiterhelfen.

Grüße

Mal ne dumme Frage: Warum fragt Du nicht da nach, wo Du die Daten her hast, sondern hier?

Nach ganz kurzem(!) Blick in den Text, sind dort zwei Orte und eine (negative) Richtung definiert, das kannst du ja mal für andere überprüfen, if noRestriction:wink:

**negative** **Helmstadt** 10851 **Marktheidenfeld** 10853

Danke für deine Antwort Jo Cassel.
Bei bast bzw. MDM habe ich bereits angefragt, jedoch habe ich bisher keine Antwort bekommen.
Ich dachte mir, vielleicht hatte hier schon mal jemand damit zu tun und könnte mir helfen.

Die Beschreibung für lautet:

Es lässt sich auch ein Muster erkennen für negative und positive, jedoch kann man daraus noch nicht schließen, ob die jeweilige Baustelle auf “meiner” Fahrbahn oder auf der Gegenfahrbahn liegt.

ist in diesem XML immer “noRestriction”

Du hast also doch eine Definition?!

Die A3 nach Wikipedia:
Straßenbeginn: Emmerich-Elten
(♁51° 54′ N, 6° 10′ O)
Straßenende: Neuhaus am Inn
(♁48° 25′ N, 13° 26′ O)

Also grobe Richtung: West —> Ost
negative wäre dann
Richtung: West <— Ost
bzw. in diesem Fall:
die nördliche Fahrbahn, in Richtung Frankfurt.

Die Kette von Punkten für eine Straße in der Location Code List hat eine definierte Richtung (die “direction of coding” aus deinem Zitat), die letztlich willkürlich festgelegt ist. Auf diese Richtung beziehen sich “positive” und “negative”. Wie weißt du jetzt, welche Richtung eine Straße hat? Hier kommen der positive und negative “Offset” ins Spiel. Der Name ist etwas verwirrend, da es sich nicht um einen Offset im gängigen Sinn handelt, sondern letztlich um die IDs von Nachfolger- bzw. Vorgängerpunkt.

Kleines Beispiel: Du hast zwei LCL-Punkte A und B. B ist positiveOffset von A, A ist negativeOffset von B. Der Autobahnabschnitt zwischen diesen beiden Punkten hat eine Richtungsfahrbahn für die positive Richtung (von A nach B) und eine für die negative Richtung (von B nach A).