Für Routing optimieren?

Das ist schon klar. Wenn da eine längere Kurve ist, kommt die natürlich in die Karte und der Router muss das irgendwie auswerten. Ein Tag a la “turn:lanes=left|right” sollte dem Router ja in den meisten Fällen die nötige Information geben können.
Trotzdem bräuchte der Router für solche größeren Kreuzungen wahrscheinlich eine Methode den “Gesamtwinkel” über mehrere Knoten hinweg festzustellen.

Beides.
Was man tun kann:

  • Fleissig das destination Tag mappen.
  • Kein Separat-Spurmapping
    Chris

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.

Das macht der Garmin Router automatisch (wenn man die Standard-Garmin-Straßentypen “Ramp” nimmt).

Das Ansageverhalten ist dann für Autobahn Auf-/Abfahrten optimiert.

Chris

Welchem OSM-Tag entspricht das? Bzw. welche Garmin-Karte setzt das richtig um von motorway_link bzw. trunk_link?

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 halte ich auch für am sinnvollsten. Sinnvollere Routenanweisungen stehen im Moment bei OSRM aber nicht ganz oben auf der Prioritätsliste.

Der Standard mkgmap-Stil (und alle Karten die diesen nutzen) macht die Zuordnung folgendermaßen:


motorway_link  -> 0x09  "Ramp major"
trunk_link     -> 0x09  "Ramp major"
primary_link   -> 0x08  "Ramp minor"
secondary_link -> 0x08  "Ramp minor"
tertiary_link  -> 0x08  "Ramp minor"

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…

Ich halte es nicht für sinnvoll, darauf zu verzichten, besonders nicht dann, wenn da noch eine Verkehrsinsel zwischen den Spuren ist.

Gruß,
Mondschein

Verkehrsinsel ist ok (bauliche Trennung).

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           

Hallo,
wende dich doch mal an die Jungs von mkgmap-dev, wenn das funktionieren sollte. Dann könnte man das direkt in mkgmap integrieren.

Habe selber schon mal drüber nachgedacht so etwas ähnliches zu implementieren. Mit Vorlage geht sowas aber natürlich viiiiel einfacher :slight_smile:

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.

WanMil

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.

Ja, hab ich mir schon gedacht, dass die Profis mit solchen Hints arbeiten.

Nach und nach ist auch OSM ein Profi Projekt… :wink: Überleg mal wie sowas in OSM aussehen könnte…
Und klar - es wäre ein klarer Fall vom Mappen für den Routing :slight_smile:

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”.