Adressen finden in OSM mit Garmin

Logisch…nicht alle Kartenersteller unterstützen das…
Ist auch verständlich. Mir selbst ist das ganze noch ein wenig zu beta, was die Zuordnung Stadt → Land angeht.

Ja, noch nicht, aber man bastelt ja fleissig an dem Thema. :wink:

Vielleicht hat der Nüvi 1390tpro User ja was falsch gemacht, mit anderen Nüvis klappt es ja mit meiner Karte.

Hallo,

also mit den Einstellungen, funktioniert die Suchfunktion in meinem Oregon 450 nicht (Frage nach Provinz/Bundesland).
Wenn ich “–link-pois-to-ways” weglasse, geht die Suche auf dem Oregon.
Wie man das Problem mit dem “suburb” umgeht ist dir auch nichts bekannt, oder?!
Wenn ich mich nicht täusche stehst du ja auch auf der mkgmap-dev-Liste.

Grüße

Laut mkgmap-dev wird doch gerade an einer Informationsgewinnung über Polygone gewerkelt. Das über die is_in zu machen ist einfach nur unpraktikabel, daher wäre es verschwendetet Zeit, da noch was dran zu verbessern.

Hat jemand es mit der neuen Methode ausprobiert?
Ich hab jetzt das Default-Style um die jeweiligen Zeilen erweitert (jeweils point, lines, polygones


mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country}' }
mkgmap:country!=* & is_in:country=* { set mkgmap:country='${is_in:country}' }
mkgmap:country!=* & mkgmap:admin_level2=* { set mkgmap:country='${mkgmap:admin_level2}' } ... 

Aber die Straßen liegen immer noch in den Stadtteilen und nicht der jeweiligen Stadt…
mkgmap-Version ist die aktuelle aus dem Trunk.

VG
Martin

du brauchst dafür den loactor-branch und musst --location-autofill=0 benutzen. Laut mkgmap-dev soll es ganz gut gehen, selber probiert hab ich aber noch nicht.

Hmm…
Damit will es auch noch nicht so richtig funktionieren… Wenn jemand die richtigen Einstellungen für Deutschland hat, wäre nett, wenn er sie hier posten könnte…

VG
Martin

In der mkgmap changelog Webseite fand ich vor 13 Tagen folgenden Hinweis zu den Änderungen in Version 1870:

Merge the index branch to trunk.

The global index is now much improved:
- Searching for names with accented characters
- Searching works after being downloaded to a device.
- Searching for streets with a city specified works..

Aufgrund der letzten Zeile hatte ich eine große Hoffnung bekommen, dass das alte Adress-Such-Problem gelöst sein könnte. Seit dem habe ich einige Tests mit der aktuellen mkgmap-Version durchgeführt. Allerdings klappt es auch bei mir nicht besser als bei den anderen hier.

Wenn ich mir von mkgmap die gmapsupp.img direkt erzeugen lasse, geht die Adress-Suche genausowenig wie zuvor. In meinem Fall (Karte mit Deutschland und einigen umliegenden Gebieten) stürzt mein eTrex Vista sogar oft beim Suchen ab. Es scheint zu stimmen, dass man die Karten mit MapSource übertragen muss. (Eigentlich habe ich dieses Programm aufgrund seiner unschönen Kartendarstellung bislang gemieden.) Die Übertragung der 2 GB dauerte in meinem Fall ca. 3 Stunden. Ist das normal?

Wenn ich es mit MapSource mache, wird bei der Adress-Suche neuerdings nach der Region gefragt, wobei in meinem Fall von den für eine deutsche Stadt in Frage kommenden Regionen “Centraleurope”, “DE”, “Bundesrepublik-Deutschland” und “Deutschland” nur letztere funktioniert.

Danach hat die Adress-Suche bei einer kleineren Stadt geklappt, bei Düsseldorf oder Berlin muss man offenbar aber den Stadtteil statt der Stadt angeben. Der Berliner Stadtteil Reinickendorf ist dem Navi hier aber genauso wenig bekannt wie die Stadt Berlin selbst.

Das Problem:
Bislang konnte ich an einem beliebigen Ort wenigstens die Staßen in der Nähe über die Adresssuche finden. Das geht jetzt nicht mehr, wenn man nicht den richtigen Stadtteil eingibt.

Hat hier jemand inzwischen schon mehr Erfolg als ich?

Hallo wind,

mittlerweile hab ich eine ungefähre Einstellung gefunden und in 90 % der Fälle funktioniert die Suche nach der Straße in den Städten und Dörfern :wink:
Also ich nehm den locator-branch vom 13. März.
Aufgerufen wird dann das ganze über:

java -Xmx1024M -jar mkgmap-locator-r1892.jar --latin1 --series-name=BaWuAls --family-name=BaWuAls --remove-short-arcs --index --net --route --tdbfile --nsis --merge-lines --location-autofill=0 --country-name=Deutschland --country-abbr=DEU --area-name=DEU --style-file=./adress_style/ ./tiles_bawuals/*.osm.gz 

Auch wenn ich es mit gmapi-builder auf dem Mac weiterverarbeite, lass ich mir das NSI-Skript miterstellen.
In dem adress_style-Ordner befinden sich die Default-Style-Dateien, die ich um die folgenden Zeilen (nur in den Dateien “lines”, “points” und “polygones”) erweitert habe.

mkgmap:country!=* & addr:country=* { set mkgmap:country='${addr:country}' }
mkgmap:country!=* & is_in:country=* { set mkgmap:country='${is_in:country}' }
mkgmap:country!=* & mkgmap:admin_level2=* { set mkgmap:country='${mkgmap:admin_level2}' }

mkgmap:city!=* & openGeoDB:name=* { set mkgmap:city='${openGeoDB:name}' }
mkgmap:city!=* & is_in:city=* { set mkgmap:city='${is_in:city}' }
mkgmap:city!=* & addr:city=* { set mkgmap:city='${addr:city}' }
mkgmap:city!=* & mkgmap:admin_level8=* { set mkgmap:city='${mkgmap:admin_level8}' }
mkgmap:city!=* & mkgmap:admin_level6=* { set mkgmap:city='${mkgmap:admin_level6}' }
mkgmap:city!=* & mkgmap:admin_level7=* { set mkgmap:city='${mkgmap:admin_level7}' }
mkgmap:city!=* & mkgmap:admin_level9=* { set mkgmap:city='${mkgmap:admin_level9}' }
mkgmap:city!=* & mkgmap:admin_level10=* { set mkgmap:city='${mkgmap:admin_level10}' }

Die Karte muss dann mittels MapInstall auf das Gerät/die SD-Karte übertragen werden (MapInstall vereint da irgendwie die Indexdateien mit der eigentlichen Karte). Du kannst die SD-Karte auch in ein Kartenlesegerät für diesen Prozess stecken, dann geht es recht schnell (beim eTrex ist das auch empfohlen, beim Oregon geht es auch so) .

Wie gesagt, bei den Städten und Dörfern die über entsprechende Grenzen verfügen, klappt es ganz gut. Ich denke optimal ist dieser “Dirty Style Code” noch lange nicht, aber eine gute Grundlage um daran zu arbeiten.

Hallo railrun,

ich werde das mal so ausprobieren. Was mir allerdings beim Start von mkgmap auffällt, sind viele Fehler vom Typ SCHWERWIEGEND (LocationHook). Bislang hatte mkgmap mit meinem Skript überhaupt keine Fehlermeldungen produziert. Kommen diese Fehler bei Dir auch?

Die Fehlermeldung kommt wenn er boundaries ohne Namen findet. Die Nummer sollte dir helfen die Relation zu finden und dort wenn möglich den Namen zu setzen:
http://www.openstreetmap.org/browse/way/DieNummerHierEintrage

Original-Zitat von der mkgmap-dev-Mail-list:

Hallo railrun,

ich habe den von Dir vorgeschlagenen locator-branch ausprobiert. Den mkgmap-Aufruf musste ich etwas an meine Verzeichnisse und Namen anpassen:

java -Xmx1600m -jar mkgmap.jar --max-jobs --index --reduce-point-density=10 --description=OSM_DE --country-name=Deutschland --country-abbr=DEU --name-tag-list="name:de,name,int_name" --style-file=.\My_Style\ --generate-sea=multipolygon --family-id=1331 --product-id=1 --series-name=OSM_Centraleurope --family-name=OSM_Centraleurope --area-name=DEU --overview-mapname=OSM_Centraleurope --net --gmapsupp --tdbfile --nsis --route --add-pois-to-areas --road-name-pois=0x640a --draw-priority=25 --latin1 --make-opposite-cycleways --merge-lines --location-autofill=0 --remove-short-arcs -c template.args My.typ

Die Dateien “lines”, “points” und “polygones” im Style-Ordner habe ich um Deine Zeilen ergänzt. Nach dem Durchlauf von mkgmap habe ich das Ganze per MapSetToolkit in MapSource installiert und danach mit MapInstall auf die SD-Karte gebracht, die jetzt im Gerät steckt.

Irgendwie klappt jetzt die Adress-Suche aber gar nicht mehr. Unter Finde > Adressen ist jetzt die Rubrik “Region” nicht mehr da. Ich tippte beispielsweise unter Stadt “Berlin” ein. Das System schlug mir vor:

Berlin, Brandenburg
Bersteland, DEU

Ich wählte “Berlin, Brandenburg” und versuchte unter Straße “Teltower Damm” einzutippen. Bereits nach drei Buchstaben stand da “Keine gefunden”. So geht es also nicht.

Dann habe ich die Funktion Finde > Städte probiert und Berlin eingetippt. In der Trefferliste taucht dann oben zwei Mal “Berlin, DEU” auf. Ich wählte den zweiten Eintrag und danach “Karte”. Direkt danach probierte ich Finde > Adressen und tippte als erstes unter Stadt wieder “Berlin” ein. In der Trefferliste stand oben “Berlin, DEU” und darunter “Berlin”. Ich probierte wieder den zweiten Treffer. Beim Eintippen von “Telt” unter Straße schlug das System “Teltower Damm” vor. Wenn ich diesen Eintrag auswählte, stand oben “Nummer eingeben” und unten “Keine gefunden”. So ging es auch nicht.

Wie machst Du das konkret mit der Adress-Suche?

Das keine Region mehr auftaucht liegt vermutlich daran, dass ich kein LocationHook für Region gesetzt hab. Ich hab es damals rausgenommen, weil ich teilweise Städte in Regionen bekam, anstatt im Land. (z. B. Dresden, Sachsen und nicht Dresden, DEU => nur als Beispiel)
Wenn ich in Garmin BaseCamp nach Berlin suche bekomme ich Berlin, DEU; Berlinchen, Wittstock / Dosse, DEU; Berliner Vorstadt, DEU vorgeschlagen.
Ich muss gestehen, ich hab nicht die gesamte Deutschlandkarte genommen, sondern nur Brandenburg :wink:

So wie es aussieht, kommt es bei der Aufteilung der Karte zu dem Problem, dass Straßen zu weit von dem Admin-Level=6 liegen. Man kann Straßen in Berlin, DEU finden, wenn sie näher an der “Stadtgrenze” liegen. So z.B. Friedrichsteiner Strasse, Berlin, DEU (bei der Dönhoffstrasse Berlin, DEU).
Allen anderen Straßen werden die Stadtteile (Friedrichstrasse Friedrichshain-Kreuzberg, DEU) als Stadt zugeordnet.
Man könnte mal schauen, ob es geht, wenn man die letzten beiden Zeilen in den Style-Dateien entfernt:


mkgmap:city!=* & mkgmap:admin_level9=* { set mkgmap:city='${mkgmap:admin_level9}' }
mkgmap:city!=* & mkgmap:admin_level10=* { set mkgmap:city='${mkgmap:admin_level10}' }

Wenn du Zeit hast, kannst du es ja mal mit Brandenburg probieren und berichten, ob es geht.
Ich muss los :slight_smile:

Hallo wind,

gerade kam die Mail in der mkgmap-dev-Liste:
http://www.mkgmap.org.uk/pipermail/mkgmap-dev/2011q1/010797.html

Dabei geht es genau um das Problem, dass die vollständige Grenze nicht in einer Kachel vorhanden ist.
Ich hab es gerade noch einmal ohne admin-level 9 & 10 probiert und nun findet man auch die Straßen im inneren von Berlin nicht mehr…
Also warten wir ab, bis der Splitter weiterentwickelt ist :slight_smile:

Hallo railrun,

das habe ich auch gerade gelesen. Zumindest sind die an dem Problem dran. Wieviele Knoten pro Kachel kann so ein Garmin-Gerät (meins ist wie gesagt ein Etrex vista) eigentlich verkraften? Hat das schon mal jemand getestet?

Wind

Hallo Martin,

heißt das ohne die Admin Level geht die Adress Suche besser?

Gruß Jürgen

Ich weiß nicht wieviel Nodes ein Etrex verkraftet. Soweit ich es in Erinnerung hab, schmeißt mkgmap auch einige Nodes raus, z.B. wenn sie bei Kurven nah aneinander liegen. Was ich weiß, ist die Größenbegrenzung bei den Garmin-Geräten. Die generierte Karte darf dabei 2024 mb nicht übersteigen, auch wenn das Gerät größere SD-Karten lesen kann.

Also die Adminlevel sind wichtig bei der Zuordnung, allerdings ist im Moment das Problem, dass die Admin-Level-Grenzen beim Splitten zerstört werden und deshalb keine richtige Zuordnung möglich ist.
Ich hatte die Überlegung geäußert, die Boundary mit Osmosis zu extrahieren und in jedes Tile zu mergen.
Aber im Moment hab ich keine Zeit das zu testen. Wenn jemand Erfahrung damit hat, kann gerne seine Ideen hier äußern. :wink:

Ich glaube, ich habe jetzt einen interessanten Weg gefunden, und zwar mit dem mkgmap-r1908 ohne Eingriffe am Stylefile. Das Script, das ich derzeit zum Erstellen der Garmin Karte nutze, entspricht grob dem hier dargestellten: http://forum.openstreetmap.org/viewtopic.php?id=11868. Die so erzeugte Karte habe ich mit MapSource, MapSetToolkit und MapInstall auf die SD-Karte gespielt, damit der Adress-Index korrekt erstellt wird.

Der (hier schon lange bekannte) Trick besteht darin, das Region-Feld leer zu lassen (wenn es nicht leer ist, muss man das eTrex Vista aus- und wieder einschalten), danach eine 1 als Hausnummer einzutippen und dann die Straße. In der Trefferliste darunter kann man oft schon den richtigen Eintrag finden. Manchmal ist dort nicht die richtige Stadt sondern nur der Stadtteil angegeben. Als letztes kann man noch versuchsweise die Stadt eintippen.

Was hierbei immer noch Probleme macht, ist beispielsweise eine “Bahnhofstrasse” in einem Ort zu finden. Hier passierte es mir schon mal, dass ich zuletzt den Ort eintippte und danach “keine gefunden” angezeigt wurde.

So:

Ich hab jetzt mal wieder ein Update, wie man eine Karte macht, wo man die Adressen finden kann. Ich hab es Stichprobenartig ausprobiert und es scheint gut zu funktionieren. Wäre super, wenn ihr mal dies auch bei euch testen wollt.
Erst einmal benötigt man die einzelnen bound-Files:
http://www.navmaps.eu/wanmil/europe_bounds_20110501.zip
Den Ordner dann in das Stammverzeichnis entpacken (es sollte dann den Ordner “bounds”).
Dann muss man die Style-Dateien um folgende Zeilen ergänzen (für Deutschland getestet)


mkgmap:country!=* & mkgmap:admin_level2=* { set 
mkgmap:country='${mkgmap:admin_level2}' }

mkgmap:region!=* & mkgmap:admin_level3=* { set 
mkgmap:region='${mkgmap:admin_level3}' }
mkgmap:region!=* & mkgmap:admin_level4=* { set 
mkgmap:region='${mkgmap:admin_level4}' }


mkgmap:city!=* & mkgmap:admin_level10=* { set 
mkgmap:city='${mkgmap:admin_level10}' }
mkgmap:city!=* & mkgmap:admin_level8=* { set 
mkgmap:city='${mkgmap:admin_level8}' }
mkgmap:city!=* & mkgmap:admin_level7=* { set 
mkgmap:city='${mkgmap:admin_level7}' }
mkgmap:city!=* & mkgmap:admin_level6=* { set 
mkgmap:city='${mkgmap:admin_level6}' }

Dann noch die aktuelle Locator-Branch runterladen:
http://www.mkgmap.org.uk/snapshots/
Nun das ganze starten


java -Xmx1700M -jar  mkgmap-locator-r1935.jar --latin1 --boundsdirectory=bounds --series-name=Germany --family-name=Germany --remove-short-arcs --index --net --route --tdbfile --nsis --merge-lines --location-autofill=0 --country-name=Deutschland --country-abbr=DEU --area-name=DEU --style-file=./master/basemap_style/ ./tiles_germany/*.osm.gz

Danach die Karte entweder mit dem NSIS-Installer in Mapsource installieren oder mit GMAPI in Basecamp.
Die Karte muss dann mittels Mapinstall aufs Garmin übertragen werden, sonst geht die Adresssuche nicht.
Über ein Feedback würde ich mich freuen! Besonders, wenn eine Adresse nicht gefunden wurde, bitte eine kurze Nachricht.
Ich versuche heute noch eine Version hochzuladen, die man sich direkt auf sein Garmin laden kann. Über zahlreiche Betatester würde ich mich freuen.

Hallo Martin,
kannst du bei deiner Karte mal schauen, ob du in Gelsenkirchen Straßen findest? Ich finde in meiner Karte keine, die Grenzrelation (level 6) sieht aber gut aus.