11.6 Lane geometry
Lane geometry are properties that describe the shape of lanes. Lane geometries are defined per lane section but may change within that section.

Figure 68 shows the UML model for lane geometry in the ASAM OpenDRIVE Lanes class. Examples of lane geometry are lane width, lane border, and lane height.
Rules
The following rules apply to lane geometry:
-
Lane geometries shall be defined relative to the start of the corresponding lane section.
-
A specific lane geometry shall remain valid until another lane geometry of that type is defined or the lane section ends.
-
asam.net:xodr:1.4.0:road.lane.lane_properties.elem_asc_order: Lane geometries of identical types shall be defined in ascending order.
11.6.1 Lane width

Figure 69 shows the change in lane width in positive s-direction, starting at different offset positions.
Elements in UML model
<width>
element
In ASAM OpenDRIVE, lane width is represented by the <width>
element within the <lane>
element.
UML class: t_road_lanes_laneSection_lr_lane_width XML tag: <width> (Multiplicity: 1..*)
Lane widths widen or narrow lanes along the t-coordinate within lane sections.
Lane width and lane border elements are mutually exclusive within the same lane group.
If both width and lane border elements are present for a lane section in the ASAM OpenDRIVE file, the application must use the information from the <width>
elements.
Name | Type | Use | Unit | Description |
---|---|---|---|---|
|
double |
required |
m |
Polynom parameter a, width at @s (ds=0) |
|
double |
required |
1 |
Polynom parameter b |
|
double |
required |
1/m |
Polynom parameter c |
|
double |
required |
1/m² |
Polynom parameter d |
|
required |
m |
s-coordinate of start position of the |
XML example
Calculation
The width at a given point is calculated with the following polynomial function of the third order:
width (ds) = a + b*ds + c*ds² + d*ds³
where
|
is the width at a given position |
|
are the coefficients |
|
is the distance along the road reference line between the start of a new lane width element and the given position |
ds
restarts at zero for each element.
The absolute position of a width value is calculated as follows:
s = ssection + offsetstart + ds
where
|
is the absolute position in the road reference line coordinate system |
|
is the start position of the preceding lane section element in the track coordinate system |
|
is the offset of the element relative to the preceding lane section |
Rules
The following rules apply to lane width:
-
asam.net:xodr:1.7.0:road.lane.width.width_defined_whole_section: The width of the lane shall be defined for the full length of the lane section. This means that there must be a
<width>
element for @s="0".
-
The center lane shall have no width, meaning that the
<width>
element shall not be used for the center lane. -
The width of a lane shall remain valid until a new
<width>
element is defined or the lane section ends. -
A new
<width>
element shall be defined when the variables of the polynomial function change. -
<width>
elements shall not be used together with<border>
elements in the same lane group.
-
asam.net:xodr:1.4.0:road.lane.width.elem_asc_order:
<width>
elements shall be defined in ascending order according to the s-coordinate.
-
asam.net:xodr:1.4.0:road.lane.width.lane_width_validity: Width (ds) shall be greater than or equal to zero.
Related topics
11.6.2 Lane borders

Figure 70 shows the convention for a lane with varying border shape over a given range.
Elements in UML model
<border>
element
In ASAM OpenDRIVE, lane borders are represented by the <border>
element within the <lane>
element.
UML class: t_road_lanes_laneSection_lr_lane_border XML tag: <border> (Multiplicity: 1..*)
Lane borders set the width of lanes. Lane borders describe the outer limits of lanes, independent of the parameters of their inner borders. In this case, inner lanes are defined as lanes which have the same sign for their ID as the lane currently defined, but with a smaller absolute value for their ID.
Especially when road data is derived from automatic measurements, this type of definition is easier than specifying the lane width because it avoids creating many lane sections.
Lane width and lane border elements are mutually exclusive within the same lane group.
If both width and lane border elements are present for a lane section in the ASAM OpenDRIVE file, the application shall use the information from the <width>
elements.
Name | Type | Use | Unit | Description |
---|---|---|---|---|
|
double |
required |
m |
Polynom parameter a, border position at @s (ds=0) |
|
double |
required |
1 |
Polynom parameter b |
|
double |
required |
1/m |
Polynom parameter c |
|
double |
required |
1/m² |
Polynom parameter d |
|
required |
m |
s-coordinate of start position of the |
XML example
Calculation
The border position at a given point is calculated with the following polynomial function of the third order:
tborder (ds) = a + b*ds + c*ds² + d*ds³
where
|
is the t-position of the border at a given ds-position |
|
are the coefficients |
|
is the distance along the road reference line between the start of the element and the given position |
ds
restarts at zero for each element.
The absolute position of a border offset value is calculated by
s = sSection + offsetstart+ ds
where
|
is the absolute position in the road reference line coordinate system |
|
is the start position of the preceding lane section element in the track coordinate system |
|
is the offset of the element relative to the preceding lane section element |
Rules
The following rules apply to lane borders:
-
asam.net:xodr:1.4.0:road.lane.border.exclusive_width_border:
<border>
elements shall not be used together with<width>
elements in the same lane group.
-
asam.net:xodr:1.4.0:road.lane.border.exclusive_offset_border:
<border>
elements shall not be used together with<laneOffset>
.
-
A new
<border>
element shall be defined when the variables of the polynomial function change.
-
asam.net:xodr:1.4.0:road.lane.border.elem_asc_order:
<border>
elements shall be defined in ascending order according to the s-coordinate.
-
asam.net:xodr:1.4.0:road.lane.border. overlap_with_inner_lanes: Lane borders shall not intersect inner lanes.
Related topics
11.6.3 Lane height
Lane height shall be defined along the h-coordinate. Lane height may be used to elevate a lane independent from the road elevation.

Figure 71 shows that lane height is used to implement small-scale elevation, such as raising pedestrian walkways. Lane height is specified as offset from the road (including elevation, superelevation, shape, cross section surface) in h-direction.
Elements in UML model
<height>
element
In ASAM OpenDRIVE, lane height is represented by the <height>
element within the <lane>
element.
UML class: t_road_lanes_laneSection_lr_lane_height XML tag: <height> (Multiplicity: 0..*)
Lane heights elevate lanes along the h-coordinate within a lane section independent from the road elevation.
Lane height is used to implement small-scale elevation such as raising pedestrian walkways. Lane height is specified as offset from the road (including elevation, superelevation, shape, cross section surface) in h-direction.
Name | Type | Use | Unit | Description |
---|---|---|---|---|
|
double |
required |
m |
Inner offset from road level |
|
double |
required |
m |
Outer offset from road level |
|
required |
m |
s-coordinate of start position, relative to the position of the preceding |
XML example
<lane id="-2" type="walking" level="false">
<link>
<successor id="-3"/>
</link>
<width sOffset="0.0" a="2.0" b="0.0" c="0.0" d="0.0"/>
<height sOffset="0.0" inner="0.12" outer="0.12"/>
</lane>
Rules
The following rules apply to lane height:
-
To modify the lane height, for example for curbstones, the
<height>
element shall be used.
-
asam.net:xodr:1.4.0:road.lane.height.elem_asc_order:
<height>
elements shall be defined in ascending order according to the s-coordinate.
-
asam.net:xodr:1.4.0:road.lane.height.center_lane_no_height: The center lane shall not be elevated by lane height.
-
Lane height shall not be used to define road elevation or superelevation.
-
Lane height shall be used for small scale elevation only.
Related topics
11.6.4 Excluding lanes from lateral profile
Single lanes may be excluded from lateral profile to cover use cases like roads with curbstones, borders, or sidewalks.

Figure 72 shows the use of the @level attribute, which excludes the outermost lanes of a road from superelevation.
ASAM OpenDRIVE provides the @level attribute for excluding lanes from lateral profile.
When the attribute is set to true
for a lane, then this lane is excluded from superelevation, road shape definition and cross section surface definitions of the road.
The elevation of the lane stays on the same height as the outer border of the inner connecting lane.
For lanes with @level="true" the projection does not change.
Changes between lane sections are not recommended.
There may be multiple outer lanes with @level="true", for example, for a bike lane followed by a sidewalk.
Rules
The following rules apply to excluding lanes from road elevation:
-
asam.net:xodr:1.7.0:road.lane.level_true_one_side: If a lane has @level="true", then all further outward lanes shall be lanes with @level="true" until the edge of the road is reached.
-
There may be multiple outer lanes with @level="true".
Related topics