IMHO, отношение лучше делать на весь перекрёсток
Типа такого:
Свойства:
type=crossing
crossing=controlled/uncontrolled
Роли:
main_road - главная
minor_road - второстепенная
outline - границы перекрёстка
Точки give_way/stop остаются как есть.
Для расчёта времени прохождения перекрёстка потребуется анализ попадания пересечения внутрь границ перекрёстка + определение взаимного расположения примыкающих дорог (слева/справа) для подсчёта направлений движений, которым требуется уступать. Чем больше направлений - тем выше время прохождения. Вместо границы перекрёстка можно перечислять все пересечения в отношении, но это более неустойчивая к ошибкам схема получится.