Die Anzeige auf dem Navi ist natürlich genau so zu berücksichtigen wie die Sprachausgabe, die Darstellung auf Landkarten, die Auswertung für Statistiken (z.B. Liste aller Ausfahrten für Vollständigkeitsprüfung) und vieles anderes.
Genau wie die Sprachausgabe wird auch die Anzeige beim (Garmin-)Navi über die “name”-Eigenschaft der Garmin-Karte geregelt. Die ist aber nicht zwangsläufig identisch mit dem name-Tag in den OSM-Daten, sondern lässt sich aus verschiedenen Tags zusammenbasteln. Genau das macht der mkgmap-style. Damit also sowohl Sprachausgabe als auch Navi-Anzeige Sinn machen, muss man 1. vollständige Daten in der Datenbank haben und 2. einen mkgmap-style, der daraus die richtige Garmin-“name”-Eigenschaft zusammenbaut.
Mir ging es bei dem (zugegebenermaßen etwas voreiligen) Vorschlag für die AIO vor allem darum, die Diskussion mit dem immer wieder angeführten Argument “ref=* und destination=* verstehen Garmin & AIO nicht, aber wenn man alles bei name=* einträgt, wird es schön vorgelesen.” zu beenden und zu verdeutlichen, dass man nicht alles in name=* packen muss, um eine schöne Sprachausgabe (und Navi-Anzeige) zu bekommen. Natürlich ist die Basis für ein sauberes Tagging erst mal ein gut durchdachtes und “rundes” Tagging-Schema, da stimme ich voll und ganz zu.
Richtig, die motorway_link’s, die in beiden Fahrtrichtungen genutzt werden, hatte ich gar nicht bedacht. Ich frage mich gerade, welchen Namen denen man in der Garmin-Karte zuordnen müsste, damit je nach Fahrtrichtung das richtige Fahrziel angesagt wird…
Ich habe mal ein paar Beispiele für typische Auf- und Ausfahrten rausgesucht, die als “einfache Beispiele” dienen sollen und auf jeden Fall berücksichtigt werden müssen (wobei in der Realität natürlich auch noch Mischformen auftreten) - jeweils mit einer Auflistung der unterschiedlichen Wegtypen / motorway_link’s:
-
Auf- und Ausfahrt sind jeweils nur in eine Richtung befahrbar bzw. beide sind baulich voneinander getrennt:
http://www.openstreetmap.org/?lat=53.56492&lon=9.90079&zoom=16&layers=M
(a) Ausfahrt
(b) Auffahrt
-
In beide Richtungen befahrbare Auf- und Ausfahrt ohne bauliche Trennung:
http://www.openstreetmap.org/?lat=53.30718&lon=10.07302&zoom=16&layers=M
(a) Ausfahrt
(b) Auffahrt
(c) gemeinsame Auf- und Ausfahrt
-
Autobahndreieck:
http://www.openstreetmap.org/?lat=52.7874&lon=9.6721&zoom=14&layers=M
(a) Autobahnverbindung (von genau einer Autobahn zu genau einer Autobahn)
-
Autobahnkreuz:
http://www.openstreetmap.org/?lat=52.31453&lon=10.5176&zoom=17&layers=M
(a) Parallelfahrbahn (1. Abschnitt - von genau einer Autobahn zu verschiedenen Autobahnen)
(b) Parallelfahrbahn (2. Abschnitt)
(c) Parallelfahrbahn (3. Abschnitt)
(d) Parallelfahrbahn (4. Abschnitt)
(e) Parallelfahrbahn (5. Abschnitt - von verschiedenen Autobahnen zu genau einer Autobahn)
(f) erste Autobahnverbindung
(g) zweite Autobahnverbindung
Die Liste ist sicher nicht vollständig, es sind nur ein paar Standardbeispiele. Wer noch mehr Beispiele hat, möge diese ergänzen.
Für jeden dieser Wege haben wir nun, wie Torsten, schon richtig gestgestellt hat, die Tags name=, ref= und destination=* (bzw. destination:forward=* und destination:backward=* für Wege, die in beide Richtungen befahren werden). Und wie Chris ebenfalls richtig festgestellt hat, gibt es ja auch noch die Nodes, an denen eine Ausfahrt beginnt. Ich schlage vor, dass wir einfach mal versuchen, die zitierten Beispiele so zu taggen, dass sie datentechnisch sauber sind und man die von Torsten genannten Informationen herauslesen kann, die (nicht nur) für eine optimale Sprachführung nötig sind. Ich mache einfach mal den Anfang mit einer (unvollständigen) Liste von Tags, die mir zumindest sinnvoll erscheinen, aber noch ergänzt werden müssen, um die komplette Information zu ergeben:
-
(a) name=Hamburg Bahrenfeld
-
(b) name=Hamburg Bahrenfeld, destination=Flensburg
-
(a) name=Thieshope
-
(b) name=Thieshope, destination=Hannover
-
(c) name=Thieshope, destination:forward=Hannover
-
(a) name=Dreieck Walsrode, destination=Bremen
-
(a) name=Kreuz Braunschweig-Nord, destination=Hannover;Berlin
-
(b) name=Kreuz Braunschweig-Nord, destination=Hannover
-
(c) name=Kreuz Braunschweig-Nord, destination=Hannover;Gifhorn
-
(d) name=Kreuz Braunschweig-Nord, destination=Gifhorn
-
(e) name=Kreuz Braunschweig-Nord, destination=Gifhorn
-
(f) name=Kreuz Braunschweig-Nord, destination=Berlin
-
(g) name=Kreuz Braunschweig-Nord, destination=Hannover
Da fehlen jetzt inbesondere noch die ref’s. Wenn die Nummer der Ausfahrt als ref am Node getaggt wird (das außerdem als motorway_junction getaggt wird), die Ausfahrt (also der Way / motorway_link) aber als ref die Nummer der Autobahn bekommt, zu der er führt, stellen sich mir ein paar Fragen:
- Welche ref bekommt 4. (a)? Hier gibt es ja mehrere Möglichkeiten.
- Bekommt 1. (a) dann gar keine ref?
- Was macht man bei 2. (c), wenn man je nach Richtung auf eine andere (oder gar keine) Autobahn gelangt?