@flohoff: Ich lasse mich ja gerne überzeugen, und bei landuse=flowerbed
ist dir das auch gelungen, auch wenn ich dort noch nicht die Zeit hatte, Konsequenzen zu ziehen. Aber hier bleibe ich bei meiner ursprünglichen Meinung: Was du haben möchtest, ist in meinen Augen klassisches Mappen für den Router. Denn eigentlich sollten wir doch mappen, was da ist. Entweder überall oder nirgends. Die Auto-Ampeln sind sowohl an den Kreuzungen, als auch an den Fußgängerquerungen vorhanden. Ich wüsste nicht, wie ich jemandem (ohne dabei von Routing zu sprechen) begreiflich machen soll, dass man die mal mappt und mal nicht.
Es mag sein, dass es vor einigen Jahren praktisch war, das so zu machen. Zu dem Zeitpunkt war Micromapping aber noch nicht angesagt und demnach auch unerwünscht, zu viele Details zu mappen. Da war dieser Vorschlag wahrscheinlich sinnvoll. Die Zeiten haben sich aber geändert. Meiner Meinung nach ist diese Art des Mappens nicht mehr zeitgemäß. Ich denke nach wie vor, das es das Sinnvollste ist, die Auto-Ampeln immer zu mappen (und zwar auf dem Graphen und nicht am Straßenrand, wo sie tatsächlich stehen, damit sie beim Routing einfach berücksichtigt werden können).
Was das Routing anbelangt, würde ich vorschlagen, hier die Routing-Software entsprechend anzupassen. Die Tripplets kann man meines Erachtens recht einfach algorithmisch erkennen: Wenn entlang eines Weges highway=traffic_lights
, dann ein highway=crossing + crossing=traffic_lights
und dann wieder ein highway=traffic_lights
kommt, ist es ein Tripplet und kann ignoriert werden, außer, wenn irgendwo dazwischen eine Verzweigung des Routinggraphs vorkommt, dann ist es kein Tripplet sondern vermutlich eine Kreuzung, bei der an einer Seite die Fußgängerquerung fehlt.
Mit dieser Heuristik sollte man einen Großteil der Tripplets erkennen können. Der Rest dürfte fehlerhaft gemappt sein (z.B. nur eine Autoampel) oder es könnte sich auch um Spezialfälle handeln - da kann man dann nichts machen; mit etwas Unschärfe muss man bei der Nutzung von OSM-Daten immer rechnen.
Man kann natürlich überlegen, ob man noch weitere Informationen hinzunimmt, um speziellen Anwendung (hier dem Routing) entgegen zu kommen. Beispielsweise durch eine Relation, die alle Elemente einer ampelgesteuerten Kreuzung zusammenfasst oder durch zusätzliche Tags, oder wie auch immer. Das wird ja in anderen Bereichen auch so gemacht (z.B. footway=link
fürs Fußgängerrouting oder die Mülleimer bei Haltestellen, wie im Parallel-Thread zu lesen).