12.10 Junction boundary
Junction boundaries define the outermost edge of the full area for common junctions, where the <elevationGrid>
is applied to all points within this boundary.
A junction boundary consists of segments that run along the outmost edge of a given lane or perpendicular to lanes connected to the junction and should include all sidewalks or similar lanes.
Segments run counter clockwise around the junction and form a closed junction boundary.
The boundary can also specify a transition zone where local height is interpolated between road data and the <elevationGrid>
in order to ensure a smooth transition from the roads outside of the junction onto the grid and vice versa.
Elements in UML model
<boundary>
element
In ASAM OpenDRIVE, junction boundaries are represented by the <boundary>
element within the <junction>
element.
UML class: t_junction_boundary XML tag: <boundary> (Multiplicity: 0..1) Introduced: 1.8.0
Junction boundaries enclose the area intended for traffic. This also includes the sidewalks for pedestrians.

Figure 96 shows the UML class diagram of the ASAM OpenDRIVE JunctionGeometry class.
<segment type="lane">
element
In ASAM OpenDRIVE, segments along lanes are represented by <segment>
elements with the value lane
in the @type attribute within the <boundary>
element.
The order of the <segment>
elements represent the segments in counterclockwise order around the junction.
UML class: t_junction_boundary_segment_lane XML tag: <segment type="lane"> (Multiplicity: 1..*) Introduced: 1.8.0
A segment element with @type="lane" goes along @boundaryLane for the given s range. It is the outmost edge of the lane relative to the center of the junction.
Name | Type | Use | Unit | Introduced | Description |
---|---|---|---|---|---|
|
int |
required |
1.8.0 |
ID of the lane of which the outer edge is the segment |
|
|
string |
required |
1.8.0 |
ID of the road used for the segment |
|
|
required |
m |
1.8.0 |
End of the segment (s-coordinate, begin, end) |
|
|
required |
m |
1.8.0 |
Start of the segment (s-coordinate, begin, end) |
|
|
required |
1.8.0 |
Type of the segment |
<segment type="joint">
element
In ASAM OpenDRIVE, segments perpendicular to lanes are represented by <segment>
elements with the value joint
in the @type attribute within the <boundary>
element.
The order of the <segment>
elements represent the segments in counterclockwise order around the junction.
UML class: t_junction_boundary_segment_joint XML tag: <segment type="joint"> (Multiplicity: 1..*) Introduced: 1.8.0
A segment element with @type="joint" is perpendicular to the start or end of the given road.
Name | Type | Use | Unit | Introduced | Description |
---|---|---|---|---|---|
|
required |
1.8.0 |
Contact point on the road |
||
|
int |
optional |
1.8.0 |
ID of the lane crossed by the segment. If missing all lanes are crossed by the segment. |
|
|
int |
optional |
1.8.0 |
ID of the lane crossed by the segment. If missing all lanes are crossed by the segment. |
|
|
string |
required |
1.8.0 |
ID of the road used for the segment |
|
|
optional |
m |
1.8.0 |
Length of the transition area where local height is interpolated between road data and the |
|
|
required |
1.8.0 |
Type of the segment |
XML example

Figure 97 shows a junction boundary out of various segments along lanes or perpendicular to lanes. The road with @id="100" has the sole purpose to provide a lane segment that closes the junction boundary at the gap between the road with @id="60" and the road with @id="3".
<junction>
<boundary>
<segment type="lane" roadId="8" boundaryLane="-2" sStart="begin" sEnd="end"/>
<segment type="joint" roadId="2" contactPoint="end" jointLaneStart="2" jointLaneEnd="-1"/>
<segment type="lane" roadId="17" boundaryLane="-1" sStart="begin" sEnd="end"/>
<segment type="joint" roadId="3" contactPoint="start"/>
<segment type="lane" roadId="100" boundaryLane="0" sStart="begin" sEnd="end"/>
<segment type="joint" roadId="60" contactPoint="start" jointLaneStart="0" jointLaneEnd="2"/>
<segment type="lane" roadId="52" boundaryLane="0" sStart="end" sEnd="begin"/>
<segment type="joint" roadId="4" contactPoint="end" jointLaneStart="1" jointLaneEnd="-2"/>
<segment type="lane" roadId="32" boundaryLane="-2" sStart="begin" sEnd="42.0"/>
<segment type="lane" roadId="32" boundaryLane="-1" sStart="42.0" sEnd="end"/>
<segment type="joint" roadId="5" contactPoint="end" jointLaneStart="1" jointLaneEnd="-2"/>
<segment type="lane" roadId="41" boundaryLane="-2" sStart="begin" sEnd="end"/>
<segment type="joint" roadId="1" contactPoint="start" jointLaneStart="-2" jointLaneEnd="2"/>
</boundary>
</junction>
Rules
The following rules apply to junction boundaries:
-
asam.net:xodr:1.8.0:junctions.boundary.only_for_common_junctions: Junction boundaries are currently only valid for common junctions.
-
asam.net:xodr:1.8.0:junctions.boundary.segments_counter_clockwise_order: Segments shall be ordered counter clockwise.
-
asam.net:xodr:1.8.0:junctions.boundary.segments_for_each_conn_road: Segments shall be defined to reach the start or end of all roads connected to the junction.
-
asam.net:xodr:1.8.0:junctions.boundary.segments_close_boundry: Segments shall close the entire junction boundary.
-
asam.net:xodr:1.8.0:junctions.boundary.close_gap_with_new_roads: If the existing roads are not sufficient to define a closed junction boundary, additional roads shall be defined for the missing segments.
These additional roads shall follow the rules of road linkage to the incoming roads, outgoing roads, or connecting roads (see Section 10.3, "Road linkage"), but are not required to have any lanes or connections. Start and end of an additional road shall point away from both incoming and/or outgoing roads to the inside of the junction. The @junction attribute shall contain the id of the junction to which the road belongs.
Related topics