Skip to content

Lane config

laneConfig is a lane count per movement (left, thru, right), not a drawing of the intersection. Volumes stay split into left, thru, and right.

Cardinal requests use N, E, S, and W. Legacy requests use leg2, leg4, leg6, and leg8. With majorRoadApproach N, north is up: northbound N enters from the bottom, southbound S from the top, eastbound E from the left, and westbound W from the right. leg2 / leg4 / leg6 / leg8 are N / E / S / W. Mixing leg2 with N, E, S, or W returns 400, and the message names the field.

  • right: 0 is a shared right. The right-turn volume is added to the through lane group. That movement’s own v/c is 0.
  • right greater than 0 is an exclusive right. The volume stays in its own lane group and can lengthen the through green. It still uses the through green.
  • A right turn is permitted only. Protected and overlap rights are not implemented.
  • Before lane grouping, the right-turn volume is multiplied by a pedestrian factor (none/low 1.2, medium 1.3, high 1.5, very high 2.1). The same factor applies to a shared right and an exclusive right. Right-turn-on-red is not subtracted.

Two crossing one-lane roads, each approach a single shared lane:

laneConfig: {
N: { left: 0, thru: 1, right: 0 },
E: { left: 0, thru: 1, right: 0 },
S: { left: 0, thru: 1, right: 0 },
W: { left: 0, thru: 1, right: 0 },
}

An exclusive right on one approach keeps that movement’s v/c and still reads the through green:

laneConfig: {
N: { left: 1, thru: 2, right: 1 },
E: { left: 0, thru: 1, right: 0 },
S: { left: 1, thru: 2, right: 0 },
W: { left: 0, thru: 1, right: 0 },
}

Lane counts are per junction. right: 0 is a shared right, with the same meaning as on a signal. With majorRoadApproach: "N", leg2 becomes N and leg6 becomes S. Node names stay intersection2, intersection48, and intersection6.

Node Required keys
intersection2 N.thru, E.left
intersection48 thru and right on N, E, S, and W
intersection6 S.thru, W.left

Median U-turn. North is up. intersection6 is the north crossover, intersection48 is the main junction, and intersection2 is the south crossover.

The dark blue path is a northbound left. It runs through intersection2 and intersection48, U-turns at intersection6, and comes back to the side street.

Node Required keys
intersection2 N.thru, E.left
intersection4 S.right, S.thru, N.left, E.right
intersection6 S.thru, W.left
intersection8 N.right, N.thru, S.left, W.right

Restricted crossing U-turn. North is up. The side street does not cross. intersection6 and intersection2 are the crossovers. intersection4 is the southbound side of the main junction and intersection8 is the northbound side.

The side street cannot cross or turn left at the main junction. Those movements turn right, then use the U-turn at intersection6 or intersection2.