Re-factoring of infrastructure visualization model
Description
Original idea: Visualization sub-tree should be moved inside the infrastructure branch
Background
The railML visualization branch has been marked DEPRECATED with version 2.1 as it was planned to move the visualization part somehow directly into the infrastructure scheme. Unfortunately, the re-engineering of screen coordinates and visualization aspects did not take place, so that it was only possible to model screen coordinates by using the child element.
Following further discussions at the 33rd railML Conference and in the forum, it was suggested to withdraw the DEPRECATED flag with upcoming version 2.4 at least until a proper final solution for future has been found.
Links
- Forum discussion:
- Torben Brand, 28.02.2018: [https://www.railml.org/forum/index.php?t=msg&th=554&start=0&]
- Christian Rahmig, 02.11.2018: [https://www.railml.org/forum/index.php?t=msg&th=611&goto=2000&#msg_2000]
- Trac tickets:
- Wiki documentation:
- CO:railml: [http://wiki.railml.org/index.php?title=CO:railml]
- IS:infrastructureVisualizations: [http://wiki.railml.org/index.php?title=IS:infrastructureVisualizations]
Proposed solution for railML 2.4
Following the discussion initiated in the forum by Torben Brand, it may be useful to have a simplified implementation of screen coordinates and visualization aspects with railML version 2.x resp. 2.4. Answering Torben's forum post, Christian Rahmig suggested to introduce a new child element on the same level like the element.
The following code snippet shows an example of a level crossing:
<levelCrossing id="lcr01" pos="123.45" absPos="4567.8">
<geoCoord coord="52.26125 10.58776" epsgCode="4326"/>
<screenCoord x="250" y="550"/>
</levelCrossing>
Following discussions e.g. in the railML use case working group "Schematic Track PLan", it was concluded to withdraw the "DEPRECATED" flag from the infrastructure visualizeation scheme. This shall be a temporary solution until the railML 3.1 implementation is finalized. In the end, the railML 2.x implementation shall be harmonized with the railML 3.1 implementation.
Proposed solution for railML 3.1
Following discussions at the 34th railML Conference in Prague (14.11.2018), the implementation of infrastructure visualization has been adapted for the purpose of railML 3.1:
The domain contains a new view . This view contains an arbitrary number of different visualizations (element ) of the infrastructure described by the other views (topology, geometry, functionalInfrastructure).
A refers to a (screen) coordinate system defined in common domain, positioning view. A may contain an arbitrary number of element projections based on spot, linear or area elements.
Every projects an infrastructure element with a single screen coordinate. A can be used to link an infrastructure element with a linear representation using at least two screen coordinates. The implements an area representation of an infrastructure element, whereas the coordinates need to form a closed polygon. Every projection refers to exactly one infrastructure element and allows a linking with a symbol to be used in the visualization.
Considering the integration of screen coordinates, the listing of different coordinate systems being used within the model, may look like this:
<positioning>
<geometricPositioningSystems>
...
</geometricPositioningSystems>
<linearPositioningSystems>
...
</linearPositioningSystems>
<screenPositioningSystems>
<screenPositioningSystem id="scs01" name="screenCoordSys01" pxY="1080" pxX="1920"/>
</screenPositioningSystems>
</positioning>
The following example shows a macroscopic visualization of a railway line with two operational points (see Simple Example):
<visualization id="vis01" positioningSystemRef="scs01">
<name name="Simple Example macroscopic screen visualization" language="en"/>
<spotElementProjection refersToElement="opp01" id="vis01_sep01">
<name name="station Arnau" language="en"/>
<coordinate x="10" y="300">
<usesSymbol externalIconRef="station.png" orientation="up"/>
</coordinate>
</spotElementProjection>
<spotElementProjection refersToElement="opp02" id="vis01_sep02">
<name name="station Cstadt" language="en"/>
<coordinate x="990" y="300">
<usesSymbol externalIconRef="station.png" orientation="up"/>
</coordinate>
</spotElementProjection>
<linearElementProjection refersToElement="lin01" id="vis01_lep01">
<name name="line A-C" language="en"/>
<coordinate x="10" y="300"/>
<coordinate x="990" y="300"/>
</linearElementProjection>
</visualization>
Proposed solution for railML 3.x
The railML 3.1 implementation shall be reviewed and adapted according to connected use case best practices.