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.
Signal and roundabout
Section titled “Signal and roundabout”right: 0is a shared right. The right-turn volume is added to the through lane group. That movement’s own v/c is 0.rightgreater 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 |
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 |
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.