Ich würde vorschlagen, für das Problem mit OSRM einen Bugreport aufzumachen, siehe Post #16 im Nachbarthread.
turn:lanes und destination scheinen aktuell gar nicht berücksichtigt zu werden. Ob es so einfach ist, einen Gesamtwinkel zu bestimmen, ist mir nicht klar. Wegen turn restrictions könnten die Fahrspuren einer Kreuzung ja in mehrere kurze Abschnitte zerteilt worden sein, so dass erst mehrere Wege zusammen das “big picture” ergeben.
Vielleicht ließe sich die Information “highway-Typ ändert sich” (von trunk auf trunk_link, etc.) noch berücksichtigen?
Gibt es eigentlich schon irgendwelche langfristigen Ideen zu diesem Problem? Bei kleinen Kreuzungen ist das ganze kein Problem. Spur-mapping kommt hier nicht in Frage und die Abbiegebeziehungen sind einfach und gut zu detektieren. Für komplexere Kreuzungen muss man in vielen Fällen wohl mit Spurmapping leben, alleine schon aus Gründen der genauen Abbildung (ich meine nicht Kartendarstellung) der Realität. Um gutes Routing zu erhalten sehe ich mehrere Möglichkeiten (nur mal ein paar Ideen niedergeschrieben, ausgereift ist da noch nichts):
Kreuzungen werden generell auf einen Knoten in der Mitte reduziert wie in einem Proposal gewünscht - schön für Router aber für alles andere nicht zu gebrauchen. Zumal die Winkel der einzelnen Wege bei breiten Straßen komplett verzerrt werden.
Router werden so intelligent, dass sie alle Kreuzungen selbstständig detektieren. Das ist wohl Wunschdenken und wird nicht realisiert werden können.
Es wird flächendeckend mit turn:lanes=* gearbeitet und Router benutzen diese Information um die möglichen Richtungen herauszufinden.
Es wird eine Relation eingeführt, die alle Knoten einer Kreuzung zusammenfasst. Der Router kann dann die Abbiegerichtung ermitteln, indem er den Winkel zwischen dem letzten Weg vor dieser Relation und dem ersten Weg nach dieser Relation bestimmt.
Ich persönlich halte eine Kombination aus den letzten beiden für das Erfolgversprechendste. Wahrscheinlich ließe sich das auch gut kombinieren mit den vorgeschlagenen Highway-Areas.
Hi Muschel, betreffend #6 -
es ist zwar offtopic aber es betrifft Deine Überlegungen:
Komm nach Garching, da werden wir eine solche Lösung diskutieren wenn wir über Routing und Autonavigation sprechen…
Das ist dann aber genau genommen wieder “Mapping für den Router”. Wenn detailgetreu gemappt werden soll, z.B. auch für Blinde, dann können große Kreuzungen nicht nur aus zwei Straßen bestehen. Alles was über einfache Spuren hinausgeht wird dann zwangsläufig zu Problemen führen.
Leider bin ich kein Experte was solche Suchalgorithmen angeht…
So, hier mal ein Test mit der Implementierung der destination-Auswertung für Garmin (Nüvi 250).
Folgendes muss dazu in die “lines” Datei eingefügt werden:
# Set the routing direction
(highway=motorway|highway=motorway_link) & destination=* { add display_name = '${ref} (${destination})' }
(highway=trunk|highway=trunk_link) & destination=* { add display_name = '${ref} (${destination})' }
# Set highway names to include the reference if there is one
Testobjekt: Kreuz Münster Süd (Ist vollständig destination-gemappt ).
(a) von A43 West kommend nach A1 Richtung Bremen
Ansage: “nach 300 Metern rechts abfahren, dann links halten”
(b) von A43 West kommend nach A1 Richtung Dortmund
Ansage: “nach 300 Metern rechts abfahren, dann rechts halten”
Damit das funktioniert müssen für xyz_link die Garmin Typen “Rampe” 0x08 und 0x09 benutzt werden, außerdem
muss das erste nicht-link-Straßenstück nach den Abbiegespuren auch ein destination-Tag tragen, da der Garmin
Router nur dies auswertet.
Da man den Mappern nicht zumuten kann für Garmin zu mappen bietet sich hier eine Vorverarbeitung an. Eine erste Version habe ich nun erstellt. Der Algorithmus ist simpel:
Für alle hw=*link mit gesetztem destination wird der nächstfolgende Way gesucht. Wenn dies ein motorway oder (oneway-)trunk ohne destination Tag ist, wird die destination aus dem link rüberkopiert.
Werde damit nun mal eine Nüvikarte bauen und Testen.
Auszug aus dem Log:
File : 10000052.osm
id hw ref dest (* = added by tool)
---------- -------------- -------- --------------------
3993952 motorway_link Wiesbaden; Niedernha
4007900 motorway_link Limburg-Nord; Diez;
4188884 motorway_link A 60 Frankfurt a.M.;Darms
4188885 motorway A 63 *Kaiserslautern;Ludw
4188886 motorway_link A 60 Frankfurt a.M.;Darms
4188887 motorway_link A 63 Kaiserslautern;Ludwi
4208767 motorway_link Mainz-Kastel; Wiesba
4443859 motorway_link 18 Wattenheim; Eisenber
4446759 motorway_link Kaiserslautern-West;
4453461 motorway_link 12 Frankfurt; Mainz; In
4454068 motorway_link Kaiserslautern; Darm
4514843 motorway_link Mainz-Mombach; -Inne
4527121 motorway_link A 63 Frankfurt am Main;Ma
4541849 motorway_link B 50 Rheinböllen; Trier;
4854593 motorway_link Ludwigshafen;Mainz;B
4854595 motorway_link Frankfurt;Koblenz
4859933 motorway A 63 *Kaiserslautern;Ludw
5123492 motorway_link Kaiserslautern-Einsi
5201093 motorway_link Idstein; Usingen; Ba
5201206 motorway_link B 255 Montabaur; Koblenz;
5233728 motorway_link A 62 Trier;Birkenfeld;Kus
5233730 motorway_link Pirmasens;Landstuhl-
5233731 motorway_link A 62 Pirmasens;Landstuhl-
5536512 motorway A 65 *Frankenthal; Mutter
7034887 motorway_link A 61 Koblenz
7034893 motorway_link Saarbrücken; Kaiser
7034901 motorway_link Koblenz; Karlsruhe;
7034906 motorway_link A 6 Mannheim; Ludwigshaf
7034910 motorway_link Koblenz
9046916 motorway_link Neustadt/Weinstr.; F
9046917 motorway_link A 65 Frankenthal; Mutters
9046919 motorway_link A 65 Neustadt/Weinstr.
9047704 motorway_link A 65 Mutterstadt-Nord
9052756 motorway_link A 61 Karlsruhe; Neustadt/
9053750 motorway_link A 6 Frankfurt a. M.; Fra
9641721 motorway_link A 48 Trier; Koblenz
9891359 motorway_link Ludwigshafen;Alzey
10713286 motorway A 61 *Bonn;Köln
15382502 motorway_link Kaiserslautern-Centr
21827862 motorway_link A 3 Limburg-Süd
23069518 motorway A 650 *Bad Dürkheim
23377824 motorway_link Gundersheim; Westhof
23483148 motorway_link Mörstadt
23486653 motorway_link Alzey; Gau-Odernheim
23701466 motorway_link Mainz-Gonsenheim
23763027 motorway_link A 643 Trier; Koblenz; Bing
23781848 motorway_link Limburg-Nord; Diez;
24033964 motorway_link A 650 Bad Dürkheim
24033966 motorway_link A 650 Ludwigshafen
24033967 motorway_link Ludwigshafen; Bad DÃ
24033974 motorway_link A 650 Bad Dürkheim
24033976 motorway_link Bad Dürkheim; Mannh
24223240 motorway A 643 *Koblenz; Bingen; Ma
24351895 motorway_link Ludwigshafen;Mainz;F
24351899 motorway A 48 *Frankfurt;Koblenz
24442677 motorway_link Mörstadt; Worms-Nor
24442678 trunk L 425 *Worms-Nord; Worms-A
24462530 motorway A 63 *Kaiserlautern
24462537 motorway_link A 63 Köln;Koblenz;Ludwig
24462540 motorway_link Ludwigshafen
24462541 motorway_link A 61 Kaiserlautern
24462542 motorway_link Köln;Koblenz
24462544 motorway_link Kaiserlautern
24475781 motorway_link Bad Camberg; Aarberg
24502053 motorway_link Ludwigshafen; Bad Kr
24620724 motorway A 6 *Mannheim;Karlsruhe;
24620766 motorway_link Ramstein-Miesenbach;
24621264 motorway_link Mehlingen
24621371 motorway_link Kaiserlautern-Ost
24621391 motorway_link Enkenbach-Alsenborn;
24740193 motorway_link B 50 Gensingen; Bingen-Sp
24979621 motorway_link A 63 Kaiserslautern
25354792 motorway_link B 50 Bingen-Mitte; St. Go
25384630 motorway_link Bornheim; Flonheim
25601028 motorway_link 47 Waldlaubersheim; Gul
25819360 motorway A 48 *Frankfurt;Koblenz
25849190 motorway_link Trier;Koblenz
25849191 motorway_link Trier;Koblenz
25849192 motorway_link Trier;Koblenz
25849193 motorway_link Trier;Koblenz
25879219 motorway_link Worms-Nord; Worms-Ab
26724719 trunk B 455 *Wiesbaden-Stadtmitt
27483967 motorway_link Bad Dürkheim
27488798 trunk L 425 *Mörstadt
27594972 motorway A 65 *Neustadt/Weinstr.
27879282 motorway_link Saarbrücken; Kaiser
27896161 motorway_link Mutterstadt-Nord
27896176 motorway A 65 *Mutterstadt-Nord
27896186 motorway_link Neustadt/Weinstr.
27896356 motorway_link Speyer; Neustadt/Wei
28280344 motorway_link Köln;Koblenz
28280358 motorway A 63 *Kaiserlautern
28505907 motorway A 61 *Speyer; Neustadt/We
28527070 motorway_link Luxemburg;Trier;Saar
33836870 motorway_link A 63 Kaiserslautern
33836883 motorway_link A 63 Mainz
34260592 motorway A 62 *Trier;Birkenfeld;Ku
38334828 trunk L 425 *Mörstadt
38336007 trunk B 455 *Mainz-Kastel; Wiesb
38336072 trunk B 455 *Wiesbaden-Stadtmitt
38447323 motorway_link Köln; Bonn; Koblenz
42425450 motorway A 643 Bingen; Mainz; Frank
47370522 motorway_link A 6 Mannheim;Karlsruhe;M
47370523 motorway_link A 6 Saarbrücken;Trier
47370526 motorway_link A 6 Saarbrücken; Kaiser
49196675 motorway A 66 Rhe *Frankfurt
49201156 trunk B 455 *Mainz-Kastel; Wiesb
53791939 motorway A 650 *Ludwigshafen
61420525 motorway_link Kaiserslautern-West;
61420527 motorway_link Kaiserslautern-West;
83157584 motorway A 65 *Mutterstadt-Nord
92932733 motorway A 63 *Kaiserslautern
94061754 motorway A 63 *Mainz
111545789 motorway A 60 *Frankfurt a.M.;Darm
112072760 motorway A 61 *Speyer; Neustadt/We
112599196 motorway A 62 *Pirmasens;Landstuhl
112599198 motorway A 62 *Trier;Birkenfeld;Ku
116002598 motorway A 48 *Trier;Koblenz
123313505 motorway_link Rüdesheim
124734578 trunk L 425 *Worms-Nord; Worms-A
132979563 motorway_link Bad Dürkheim; Mannh
132979566 motorway_link Neustadt/Weinstr.
134378212 motorway_link Rasthof Wonnegau-Ost
134378213 motorway_link 12 Frankfurt; Mainz; In
134378214 motorway_link Monsheim
134378215 motorway_link Mörstadt
134378217 motorway_link Frankfurt a. M.; Mai
142769513 motorway_link Wiesbaden-Frauenstei
143164001 motorway_link Wiesbaden-Äppelalle
143414058 motorway_link A 643 Wiesbaden; Wiesbaden
143414062 motorway_link A 643 Koblenz; Bingen; Mai
143414065 motorway_link A 66 Frankfurt
143414071 motorway A 66 Rhe *Frankfurt
143414072 motorway_link Rüdesheim
144118153 motorway_link B 263 Wiesbaden-Mainzer St
144118157 motorway_link B 263 Darmstadt; Wiesbaden
144123633 motorway_link Wiesbaden-Stadtmitte
144449837 motorway A 650 *Bad Dürkheim
144453294 motorway_link A 650 Mannheim; Ludwigshaf
144453315 motorway A 650 *Ludwigshafen
146414975 motorway_link Wiesbaden; Wiesbaden
146611369 motorway A 643 *Wiesbaden; Wiesbade
146611376 motorway A 643 *Koblenz; Bingen; Ma
148274960 motorway A 60 *Frankfurt a.M.;Darm
149120482 motorway A 63 *Kaiserslautern
149896911 motorway_link 48 Dorsheim; Rümmelshe
155363678 motorway A 61 *Rasthof Wonnegau-Os
155363725 motorway_link Monsheim
155363734 motorway_link Worms
155363746 motorway_link Monsheim; Worms
155363762 motorway_link Rasthof Wonnegau-Ost
165776953 motorway_link B 263 Wiesbaden-Mainzer St
169412993 motorway_link Kaiserslautern-Centr
175118086 motorway_link Frankfurt;Koblenz
175118089 motorway_link Bonn;Köln
Habe selber schon mal drüber nachgedacht so etwas ähnliches zu implementieren. Mit Vorlage geht sowas aber natürlich viiiiel einfacher
Meine Idee ging sogar noch etwas weiter und sollte eigentlich nicht nur auf Autobahnen beschränkt sein. Ich habe nämlich recht häufig den Text “Rechts auf Rampe” angesagt bekommen. Ggf. könnte man der Rampe besser den Namen der Zielstraße (z.B. “Richtung B51”) verpassen. Mehr als eine Idee ist das aber nie gewesen. Ich weiß also überhaupt nicht, ob das sinnvoll ist und funktioniert. Wäre auf jeden Fall schon mal gut, wenn wir mit Autobahnen anfangen könnten. Das andere kann man dann ja nach und nach dazuimplementieren.
Offtopic: Für seltene Fälle uneindeutiger Geometrien der Einbahn Abbiegeverläufe wo man aber eindeutige Ansage braucht gibt es (nicht in der OSM) spezielle Punkte die diese Ansage beinhalten. Ist so ein Punkt vorhanden, wird die Geometrie/Kurvigkeit etc nicht untersucht. Die Angabe an einem solchen Punkt hat den Vorrang.
Nach und nach ist auch OSM ein Profi Projekt… Überleg mal wie sowas in OSM aussehen könnte…
Und klar - es wäre ein klarer Fall vom Mappen für den Routing
Da gab es auf der SOTM in Japan einen Vortrag von Leuten von Bosch, die Routing betreiben und gerne solches Tagging hätten. Stichwort “Complex Junctions”.
Na, dann werde ich nicht erschossen für den Verrat wichtiger Betriebsgeheimnisse.
Wenn die Katze also aus dem Sack ist, könnten wir auch dieses Thema anpacken.
So kompliziert ist es auch nicht.
Das mit dem Punkt ist ja schön und gut, nur denke ich, dass es nicht Sinn und Zweck von OSM ist, der Navi-Industrie blind hinterher zu dackeln. Es ist nun mal der komplette Weg, der die Auffahrt mit der direction bildet. Diesen sollte man so auch taggen. Wenn nun ein Auswerter meint, nur einen Punkt zu brauchen, ist es ein leichtes, einen Punkt des Weges zu wählen und die Tags entsprechend zu setzen.