mkgmap - Kein Routing möglich

Hallo Zusammen,

ich möchte aktuell eine Karte für mein Garmin-Gerät erstellen (Für einen bestimmten Bereich, den ich bei der Geofabrik heruntergeladen habe). Genau genommen geht es um Roller, die höchstens 45 km/H fahren dürfen und Kraftfahrtstrasse-Verbot haben! :slight_smile:

Hier kommt die erste Frage ins Spiel : Ist es eine gute Idee, die Daten vorher mit osmfilter / osmosis zu filtern? Ich habe meinen Kartenausschnitt damit vorher gefiltert, und zunächst nur die Strassen-Typen (highway=) reingenommen, die Befahren werden dürfen. Hat den Nachteil, dass man z.B. Autobahnen auch nicht sehen kann - was zur Orientierung nicht gerade beiträgt. Eine Alternative wäre, alle Strassen zu integrieren, dabei jedoch einige Strassen vom Routing auszuschliessen. Ist dies Möglich? Welche Variante würdet ihr bevorzugen?

Mein Hintergedanke war dabei, dass es ja eine Spezialkarte ist. Ich habe schon die Freizeitkarte auf meinem Gerät - wenn ich jetzt nur für die Rollerkarte nochmal eine Menge Speicher verbrauche, ist dies verschwendeter Platz - da ich für das Roller-Routing ja eben nur die erlauben Strasse benötige. Was meint ihr dazu? Oder ist es üblich, mehrere Karten mit X GB zu verwenden? :open_mouth:

Meine zweite Frage - unabhängig von der Ersten (Oder doch nicht?) - Woran kann es liegen, dass das Routing nicht funktioniert?

Ich habe im ersten Schritt den Kartenausschnitt mit osmfilter gefiltert - und folgende Werte als keep-Argument übergeben (Ob die jetzt sinnvoll sind, ist erstmal eine andere Frage - es soll erstmal nur funktionieren :slight_smile: ) :

highway=secondary =tertiary =unclassified =residential =service =secondary_link =tertiary_link

Im zweiten Schritt habe ich diese Datei mit mkgmaps in eine Garmin-Karte konvertiert:

mkgmap arnsberg_scooter.osm --mapname=ScooterTestMap --description="Scooter-Map" --route --index --family-name="test" --family-id=1008 --remove-short-arcs --description="test" --country-abbr="de" --country-name="germany" --mapname=11112222 --product-id=1 --series-name="test1" --family-name="test2" --area-name="Arnsberg Scooter" --gmapsupp

Erkannt wird die erzeugte Datei ohne Probleme, ich kann mir die Karte auch ansehen - inkl. der Strassen. Sobald ich eine Route plane, verwendet das Gerät doch die ganz rudimentäre Autobahn-Karte, die fest im Gerät integriert ist. Dies sehe ich, wenn ich meine Karte ausblende. Wenn ich meine Karte anzeige, sieht es merkwürdig als, da die Route “einfach mittendurch” geht.

Natürlich ist eine Adresseingabe nicht möglich, da keine Adressdaten integriert sind (Sind ja keine Gebäude mit drin!). Eine Route plane ich direkt über die Karte mit Auswahl eines Punktes (vorerst).

Könnt ihr mir helfen? Vielleicht ist mein ganzes Vorgehen auch falsch und ich mache es mir viel zu einfach?

Viele Grüße!

Welches Gerät ist das genau?

–ks

Habe es auf dem nüvi 2445LM getestet! Habe mein GPSMAP 64s gerade verliehen.

Viele Grüße!

Spekulation:
Ich kann mir vorstellen, dass das Gerät eine Karte erwartet, die zumindest Straßen der Klasse 3 und 4 enthält. Du willst zum Routen nur die niedrigen Straßenklassen, und filterst die vorher raus. Deine Karte enthält überhaupt keine “hochwertigen” Straßen.
Versuche diese in den Rohdaten drinzulassen, und einen eigennen Style zu erstellen.
Und wenn es der default-style ist dem du einfach unterschiedliche Prioritäten gibst z. B. Autobahn abwerten, aber unclassifieds die Straßenklasse 4 gibst.
Mehr dazu im Style-Manual: http://www.mkgmap.org.uk/doc/pdf/style-manual.pdf

Ich würde nicht bei 0 anfangen, sondern auf eine existierende Karte mit Routing, z.B. Freizeikarte, aufsetzen.

Die Daten mit osmfilter/osmosis zu filtern ist der größte Fehler, den Du machen kannst. Damit schmeist Du garantiert Sachen raus, die wichtig sind.
Wenn Du keine highways=motorways haben willst, erstelle dafür einfach keine Regel für mkgmap, dann wird auch nichts in Deine Karte eingetragen. Welche Details in der Karte angezeigt werden oder nicht, bestimmst nämlich Du mit Deinen mkgmap Style, nicht die OSM Daten.

Von daher, nehme die unveränderten OSM-Daten, nimm ein Style einer Karte, der Deinem Wunsch schon recht nahe kommt, und dann passe diesen Style an, bis es paßt.

Kann ich nicht bestätigen. Seit ein paar Wochen filtere ich die Daten mit Erfolg.

Hintergrund war, die Gebäude (ohne Namen wie z.B. Lauben in Kleingärten), Acker und Weiden loszuwerden. Tests mit gleichem(!) Splitfile erst auf die gefilterten und dann auf die ungefilterten Daten und jeweils anschließendem mkgmap-Lauf ergaben die gleichen Dateigrößen. Einige Tiles schwanken aber um die +/-512 Bytes - man beachte auch das “+”, wahrscheinlich kann der Splitter besser oder zumindest anders kalkulieren. Die gefilterten Rohdaten kommen aber auf ca. 62% der ungefilterten, so dass ein Splitten entsprechend weniger Kacheln erzeugt. Die resultierende Karte (ca. 2,2 GB) ist trotzem ganz wenig größer.

Für die Autokarte, bei der ich nur einzelne Flächentypen und keinerlei Wege, sämtliche Straßen, aber POIs nur bis 0x300x brauche, komme ich gar auf ca. 42% der Rohdaten - auch ohne Probleme.

Nebeneffekt: Mit den Straßen (und Wegen) kommen selbstverständlich die Tags an den referenzierten Nodes mit, somit auch die barrier=, deren Beschränkungen wichtig sind. Die barrier= muss man also nicht extra in den Filter aufnehmen, dann sind auch die Poller-Wolken an mancher Kreuzung wech…

Was man aber bedenken muss: Die Relationen (type=*) muss man gezielt mitnehmen - für Flächen =multipolygon, für Abiegebeschränkungen =restriction, für einige Adressen =associatedStreet und =street.

Wenn man genau die Elemente mit --keep filtert die man braucht ist man auf der sicheren Seite. Ein wirklich großer Fehler wäre, mit --drop das wegzuwerfen, was man nicht braucht - da hängen ja noch andere Tags dran und die Elemente hätte man dann doch gebraucht… Und an die Tags, die “im Hintergrund” ausgewertet werden und nicht zwingend an den übernommenen Elementen hängen (trotz Gebäude können sich Adressen in addr:interpolation verstecken) oder die oft an den weggelassenen (bei mir eben die Gebäude) zu finden sind, sollte man auch denken. Besonders hervorzuheben wäre für die Adresssuche: addr:*= und die Relationen type=.

Grüße
Mario

Sehr gut spekuliert. Auch bei intakter Karte, wenn man Autobahnen vermeidet, sind die Bundesstraßen und Schnellstraßen ebenfalls betroffen. Entweder es kommt zu ganz komischen Routen, oder bei längeren Strecken werden diese dann doch benutzt. Und wenn diese gar nicht erst vorhanden sind… Ob das Routing wirklich nicht funktioniert, würde ich erstmal bei Zielen in der Nähe testen.

Die Befehlszeile würde ich umstellen - die zu verarbeitende OSM-Datei (und später vielleicht ein Typfile) würde ich an das Ende der Zeile setzen.

Grüße
Mario