Context
devleaks on Discord pointed out that A* taxi routes overshoot at airliner airports. EBBR Stand 161 → 27R was the example: A* routes to the exact runway threshold instead of joining the closer entry taxiway and rolling onto the runway from there.
His empirical fix from past projects: don't route to the runway edge, route to a point 50–100m inside the runway along the centerline. A* then prefers the nearer entry.
Proposal
Offset the runway destination point along the runway heading before passing it to the nearest-node lookup. Default offset around 75m, tunable.
Notes
- Direction matters — runway 09 and 27 of the same strip face opposite ways
- Skip the offset for helipads, grass strips, carriers
- Add a unit test in
taxiGraph/
ref:

Context
devleaks on Discord pointed out that A* taxi routes overshoot at airliner airports. EBBR Stand 161 → 27R was the example: A* routes to the exact runway threshold instead of joining the closer entry taxiway and rolling onto the runway from there.
His empirical fix from past projects: don't route to the runway edge, route to a point 50–100m inside the runway along the centerline. A* then prefers the nearer entry.
Proposal
Offset the runway destination point along the runway heading before passing it to the nearest-node lookup. Default offset around 75m, tunable.
Notes
taxiGraph/ref: