Adding Lane Skew at the Stop Line

The Issue

Lanes objects that do not end with a line (a stop line for motor vehicle lanes) that is precisely perpendicular to the direction of the two closest node points are very common.  The original J2735 MAP message was expanded from the 2009 edition to accommodate this need.

Maps not employing this feature can have problems.  The resulting collection for lane objects is more than simply ugly; it compromises the algorithmic ability to place BSM trails correctly within the resulting lanes.  If not modeled correctly, the incorrect polygons of the resulting lanes cannot be used for many common safety application such as stop line violation detection.

For this reason the Generic Lane Structure provides a means to “skew” the ends of the lanes to accommodate the real world angles which are encountered.

Some Examples

Here are a few common examples where the intersection geometry for both motor vehicle lanes and pedestrian  crosswalks exhibit the need for this feature.

add a few representative google shots from the intersections we will use as examples


The Answer

When constructing MAPs and lane data for such use cases, insert a skew value into the attribute for the starting or final node point when needed.  Align the stop line node point of the subject lane to the true center line and and enter a skew that will project your lane corner points to match the roadway.

Use the DeltaAngle attribute to skew the final ‘edge’ of the lane polygon to match the angle needed.   In combination with the ability to adjust the lane width (add a link to article here) at each node point, a wide variety of polygon shapes can easily be accommodated.  This ability can be used at both ends of the lane polygon as required.

The DeltaAngle attribute is choice element which is part of the LaneDataAttribute which is in turn part of the NodeAttributeSetXY found with every node (the NodeXY) used to describe the center-line path of a lane. Unlike most attributes, this is not a simple on/off value but provides a definitive data value (the angle of the skewing).

Admittedly its location in the taxonomy of the nodes is a bit obscure.  Here is the fragment of the ASN where it is found. The term “pathEndPointAngle” is used, but lane skew is perhaps a better choice of English.  The term “cant” is also used in the standard for this concept.

LaneDataAttribute ::= CHOICE {
       -- Segment attribute types and the data needed for each
       pathEndPointAngle   DeltaAngle,
                           -- adjusts final point/width slant
                           -- of the lane to align with the stop line cut, see J2735 for the definitive details.

TO DO:  Develop and provide a nice generic lane hierarchy graphic to point to this in the overall data taxonomy .

Its Use

We consider how this is used by modifying a typical “rectangular” lane poly-line description. Consider a simple lane made up of two points, as is often used with intersections with simple approaches. In the absence of further data, the corners of the stop line is presumed to be a perpendicular projection (of one half the current lane width) from the first and second node points.  [Recall that the order of the nodes used to describe the lane center-line are from the stop line (shown as a light gray bar) backwards]

For this example, we presume we need to skew the stop line by a negative 22.5 degrees to the driver’s left side.  [The control line is shown in read with rounded ends.]

By adding the pathEndPointAngle attribute (which contains the DeltaAngle and the value selected) to the very first NodePt, we can skew the resulting poly-line description as required.  Note that the projection shown below removes a small triangle from one side of the polygon while adding an equal projection to the other side.

When the control points are removed, the resulting polygon shape is as show below.


The process can also used on the ending node point as well. This is most commonly seen with Pedestrian Crosswalk lanes where there is a need to skew the polygon to align with the edge of the roadway and the motor vehicle lanes it crosses.

The example shown here uses a constant common lane width, but widths can vary in the normal way to produce more complex polygon shapes.

Note: If the general concept of projecting a set of node offset points
and the lane width to form a closed polygon are unclear to you,
review this article (link to be provided).

Its Use, the math

In practice this attribute only has meaning at the first and last node points. Its appearance in association with any mid-node point is not addressed by the j2735 standard, but can safely be presumed to represent an ill-formed message in violation of the intent.  [Aside: And further, the angle formed by any three node points is fully defined by the polygon fillet process as discussed further in this article (link to be provided) ]

The DeltaAngle entry provides a range spanning from -150 to +150 degrees in one degree steps.  Hence greatly obtuse angles are also supported. Due to regulatory and safety issues (such as MUTCD) such angles are not often found in roadway geometry.  The resulting accuracy to the “outer corners” is limited by the observation that the projection length is typically under 5 meters. hence the DSRC TC decided that a single degree was sufficient.

The angle of zero is taken as the line formed by the last two points (the point in which this attribute is asserted and the next/prior point as required).  The direction of travel along the node point is important here and follows the order in which the nodes are described (which may or may not be related to the allowed direction of travel flags (<– add link to article).  In other words, the bearing of “zero” is always the line extending from these two points away from the body of the polygon.  In this coordinate system, “to the left” is considered a negative angle.

To belabor this point further:  As shown in the above example, a NEGATIVE skew rotates the projection line to the left (counter clockwise), causing the lane end point on the left side to be behind where a non-skewed stop line would be, and the lane end point on the right to be an equal distance ahead of the same line. The length of this final lane polygon segment is not the current lane width at the offset point, but is slightly longer to accommodate the additional distance which the final angle causes.

Thus a roadway stop line where the left corner of the roadway extends some meters ahead of the center line final node, and the right corner of the roadway extending an equal number of meters behind it, would have a DeltaAngle angle representing the skew that was present.  The resulting corner points of the enclosing closed polygon for the lane can be determined with some simple trig methods used for fillets between intermediate nodes.

See also

Observe also that this construct has value and use when modeling the start of turn pocket lanes where the start of the lane is often defined as a taper growing to a full lane and width. However, there are other attributes also employed for that use case.  [See the article on the use of the SegmentAttributeXY entry (provide a link here)]



Was this article helpful?

Related Articles

Leave A Comment?

You must be logged in to post a comment.