Geographic positioning of functional infrastructure

From railML 3 Wiki
Jump to navigation Jump to search

Introduction

Depending on use case requirements functional infrastructure needs to be positioned using RailTopoModel (RTM) or GML.

Spot location

Below are two equivalent representations of positioning the operational point Dresden Hauptbahnhof using gml:point and spotLocation of RTM.

RTM approach GML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<railML xmlns="https://www.railml.org/schemas/3.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml4rail3="https://www.railml.org/schemas/3.2/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2" xsi:schemaLocation="https://www.railml.org/schemas/3.2 https://www.railml.org/schemas/3.2/railml3.xsd">
  <common id="co_01">
    <positioning>
      <geometricPositioningSystems>
        <geometricPositioningSystem id="gps1" crsDefinition="urn:ogc:def:crs:EPSG::4326">
          <name name="WGS84" description="" language="en"/>
          <isValid/>
        </geometricPositioningSystem>
      </geometricPositioningSystems>
    </positioning>
  </common>
  <infrastructure id="is_01">
    <topology>
      <netElements>
        <netElement id="ne1">
          <associatedPositioningSystem id="ne1_aps01" positioningSystemRef="gps1">
            <intrinsicCoordinate id="ne1_aps01_ic1" intrinsicCoord="0.0">
              <geometricCoordinate x="51.040636527018066" y="13.728913370223633" positioningSystemRef="gps1"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne1_aps01_ic2" intrinsicCoord="1.0">
              <geometricCoordinate x="51.040538710496044" y="13.729119900314684" positioningSystemRef="gps1"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
      </netElements>
      <networks>
        <network id="nw01">
          <level id="lv1" descriptionLevel="Meso">
            <networkResource ref="ne1"/>
          </level>
        </network>
      </networks>
    </topology>
    <functionalInfrastructure>
      <operationalPoints>
        <operationalPoint id="opp1">
          <name language="en" name="DresdenHbf"/>
          <spotLocation id="opp1sp" netElementRef="ne1" intrinsicCoord="0" applicationDirection="both">
            <geometricCoordinate positioningSystemRef="gps1" x="51.040636527018066" y="13.728913370223633"/>
          </spotLocation>
        </operationalPoint>
      </operationalPoints>
    </functionalInfrastructure>
  </infrastructure>
</railML>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<railML xmlns="https://www.railml.org/schemas/3.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml4rail3="https://www.railml.org/schemas/3.2/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2" xsi:schemaLocation="https://www.railml.org/schemas/3.2 https://www.railml.org/schemas/3.2/railml3.xsd">
	<infrastructure id="is_01">
		<functionalInfrastructure>
			<operationalPoints>
				<operationalPoint id="opp1">
					<name language="en" name="DresdenHbf"/>
					<gmlLocations>
						<point srsName="urn:ogc:def:crs:EPSG::4326">
							<gml4rail3:pos>51.04064453706573 13.731408367546106</gml4rail3:pos>
						</point>
					</gmlLocations>
				</operationalPoint>
			</operationalPoints>
		</functionalInfrastructure>
	</infrastructure>
</railML>

In the graphical user interface visualization of these code snippets looks identically.

2025-11-11 railML Dresden.png
Spot location of Dresden Hauptbahnhof

Linear location

Below are two equivalent representations of positioning the track inside the operational point Dresden Hauptbahnhof using gml:lineString and linearLocation of RTM.

RTM approach GML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<railML xmlns="https://www.railml.org/schemas/3.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml4rail3="https://www.railml.org/schemas/3.2/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2" xsi:schemaLocation="https://www.railml.org/schemas/3.2 https://www.railml.org/schemas/3.2/railml3.xsd">
  <common id="co_01">
    <positioning>
      <geometricPositioningSystems>
        <geometricPositioningSystem id="gps1" crsDefinition="urn:ogc:def:crs:EPSG::4326">
          <name name="WGS84" description="" language="en"/>
          <isValid/>
        </geometricPositioningSystem>
      </geometricPositioningSystems>
    </positioning>
  </common>
  <infrastructure id="is_01">
    <topology>
      <netElements>
        <netElement id="ne1">
          <associatedPositioningSystem id="ne1_aps01" positioningSystemRef="gps1">
            <intrinsicCoordinate id="ne1_aps01_ic1" intrinsicCoord="0.0">
              <geometricCoordinate x="51.040440" y="13.729343" positioningSystemRef="gps1"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne1_aps01_ic2" intrinsicCoord="1.0">
              <geometricCoordinate x="51.039262" y="13.732932" positioningSystemRef="gps1"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
      </netElements>
      <networks>
        <network id="nw01">
          <level id="lv1" descriptionLevel="Micro">
            <networkResource ref="ne1"/>
          </level>
        </network>
      </networks>
    </topology>
    <functionalInfrastructure>
			<tracks>
				<track id="trc1" type="mainTrack">
					<name language="en" name="4"/>
          <linearLocation id="ll1" applicationDirection="both">
            <associatedNetElement netElementRef="ne1" intrinsicCoordBegin="0" intrinsicCoordEnd="1" keepsOrientation="true" sequence="1">
              <geometricCoordinateBegin positioningSystemRef="gps1" x="51.040440" y="13.729343" />
              <geometricCoordinateEnd positioningSystemRef="gps1" x="51.039262" y="13.732932" />
            </associatedNetElement>
          </linearLocation>
				</track>
			</tracks>
    </functionalInfrastructure>
  </infrastructure>
</railML>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<railML xmlns="https://www.railml.org/schemas/3.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml4rail3="https://www.railml.org/schemas/3.2/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2" xsi:schemaLocation="https://www.railml.org/schemas/3.2 https://www.railml.org/schemas/3.2/railml3.xsd">
	<infrastructure id="is_01">
		<functionalInfrastructure>
			<tracks>
				<track id="trc1" type="mainTrack">
					<name language="en" name="4"/>
					<gmlLocations>
						<lineString>
							<gml4rail3:posList srsName="urn:ogc:def:crs:EPSG::4326">51.040440 13.729343 51.039262 13.732932</gml4rail3:posList>
						</lineString>
					</gmlLocations>
				</track>
			</tracks>
		</functionalInfrastructure>
	</infrastructure>
</railML>

In the graphical user interface visualization of these code snippets looks identically.

2025-11-11 railML DresdenTrack.png
Linear location of a track in Dresden Hauptbahnhof

Area location

to follow