Es ist noch komplizierter aber ja. Grundsätzlich hast du die angaben lanes/lanes:forward/lanes:backward.
Wenn du kein lanes:forward hast aber ein turn:lanes:forward und lanes und lanes:backward musst die Anzahl erst berechnen.
Es sollte finde ich möglichst alles 3 da sein - dann hat man eine möglichkeit der validierung.
Also was so lanes angeht sind das so meine schematischen tests:
lanes=lanes:forward+lanes:backward
lanes ist ganzzahl
lanes:forward ist ganzzahl
lanes:backward ist ganzahl
lanes > 0 && < 8
lanes:backward > 0 && < 8
lanes:forward > 0 && < 8
turn:lanes && oneway
destination:lanes && oneway
turn:lanes:backward && !oneway
destination:lanes:backward && !oneway
elemente mit | in turn:lanes = lanes
elemente mit | in turn:lanes:forward = lanes:forward // lanes - lanes:backward
elemente mit | in turn:lanes:backward = lanes:backward // lanes - lanes:forward
elemente in turn:lanes mit | oder ; separiert in known good liste
elemente in turn:lanes:forward mit | oder ; separiert in known good liste
elemente in turn:lanes:backward mit | oder ; separiert in known good liste
elemente in turn:lanes mit | oder ; separiert in priority order
elemente in turn:lanes:forward mit | oder ; separiert in priority order
elemente in turn:lanes:backward mit | oder ; separiert in priority order
elemente mit | in destination:lanes = lanes
elemente mit | in destination:lanes:forward = lanes:forward // lanes - lanes:backward
elemente mit | in destination:lanes:backward = lanes:backward // lanes - lanes:forward
Und die priority order für die turn commands hab ich mir so gemacht
const std::map<const std::string, const int> turn_to_priority {
{ "sharp_right", 1 },
{ "right", 2 },
{ "slight_right", 3 },
{ "merge_to_left", 4 },
{ "through", 5 },
{ "none", 5 },
{ "merge_to_right", 6 },
{ "slight_left", 7 },
{ "left", 8 },
{ "sharp_left", 9 },
{ "reverse", 10 },
};
Ist jetzt von rechts nach links. Wir man natürlich sieht ist das nur für “rechtsverkehr” - Bei linksverkehr müsste reverse auf der anderen Seite sein
Aber ich beschränke mich ja auf “Deutschland” d.h. das thema rechts/linksverkehr hab ich an mehreren stellen. (Kreisverkehr sollte nur ein sidewalk=right haben - left macht wenig Sinn - Aber eben nur bei Rechtsverkehr)
Flo