Speichenkarte

Seit ein paar Jahren habe ich mein Hobby Rennrad & MTB Touren mit einem Garmin Oregon bereichert.
Das schlechte Display brachte mich dazu, zunächst Garmin City Navigator zu benutzen. Diese Karte ist gut ablesbar. Nur nicht wirklich tauglich, da man nicht erkennen kann, ob ein Sträßchen Asphalt hat oder nicht. MTB Wege sind Mangelware. Die Garmin-Topo war mir zu teuer. Dann entdeckte ich OSM und stellte schnell fest, dass diese Karten prinzipiell die besseren sind.
Nur die Ablesbarkeit war nicht so toll. Zunächst habe ich mir damit beholfen, das Typ-File zu malträtieren. Dann erfuhr ich von mkgmap und das man damit die OSM Daten nach eigenen Vorstellungen nach Garmin portieren kann. Damit ging die Bastelei dann los. Manchmal habe ich mehr an den Karten gefummelt, als Rad gefahren…:slight_smile:
Mittlerweile bin ich recht weit gekommen. Top-Ablesbarkeit, detaillierte Wegedarstellung, brauchbares Rennrad-routing, Darstellung von Radstrecken, mtb_scale, Radverbote, Einbahnstraßen getrennt nach generell und für Rad freigegeben, Ampeln, Wege die irgendein OSM Tag haben, welches auf eine Radnutzung schließen lässt usw.

Ich habe die Karte nun Online gestellt, wer mag, kann sie gerne einmal testen. Über Hilfestellungen würde ich mich freuen. Vielleicht auch gegenseitig :wink:

Es sind noch ein paar Baustellen offen, wo ich noch keinen Plan habe, wie und ob das zu lösen ist: :rage:

  • Adresssuche
  • Hinter Ortsnamen in der Suche kein ABC
  • Ich hätte gerne einen Stadtnamen, wenn ich auf ein residential Polygon klicke. Bei anderen Polygonen funktioniert das.
  • verstehen, wie in mkgmap die Namen vergeben werden $name(fwfh) oder so ähnlich.
  • Es gibt ein boundary und ein Sea File. Ich verstehe nicht, wofür das ist und wie man es verwenden könnte
  • Bei Garmin heist es auf der Autobahn “Ausfahrt 27”. Das würde ich auch gerne hinbekommen, um neben der Radkarte eine Autokarte zu bauen
  • Einen Installer bauen

Die Karten findet man hier:

www.speichenkarte.de

Hi,
wird bei mir in BaseCamp nicht angezeigt. Die eintrage.bat hab ich ausgeführt.
(NRW Karte)

Win-7-64

Hallo speichennippel,

ein paar Hilfestellungen:

Du musst die mkgmap-Option --index verwenden.
Für Details bitte auf der mkgmap Seite schauen: http://www.mkgmap.org.uk/doc/index.html

ABC wird dann gesetzt, wenn mkgmap keine Informationen über das Land und die Region hat.
Am einfachsten behebst Du dies durch Setzen der --bounds Option. In dieser Option gibst Du das bounds.zip File an.
Diese Datei ermöglicht mkgmap, OSM Elementen Adress-Informationen automatisch hinzuzufügen. So wird z.B. allen Element in Deutschland das Tag mkgmap:admin_level2=DEU hinzugefügt, allen Elementen aus Nürnberg das Tag mkgmap:admin_level6=Nürnberg für alle Elemente in Nürnberg.

Um diese Info in die Karte zu übernehmen, musst Du ein paar mkgmap: Tags setzen (s. Table 4.5 oder 4.7 in der mkgmap Style Documentation).
Ein gutes Beispiel hierfür findest Du im mkgmap Adress-Include (http://www.mkgmap.org.uk/websvn/filedetails.php?repname=mkgmap&path=%2Ftrunk%2Fresources%2Fstyles%2Fdefault%2Finc%2Faddress).

Habe ich im Moment keine Idee, wie das funktionieren könnte. Evtl. durch Auswerten der oben erwähnten Bounds-Informationen.

Bitte in die Style-Dokumentation schauen.
Es gibt die Kommandos { name ‘${name}’ } oder { addlabel ‘${name}’ }.

Wie oben beschrieben enthalten die boundary Files komprimierte und aufbereitete Informationen, damit mkgmap Addressinformationen generieren kann.

Die Sea Files ermöglichen mkgmap Meeresflächen vernünftig zu zeichnen. Wie Du weist, verarbeitet mkgmap immer nur kleine Teile der Karte (Tiles), die nur unvollständige Meerespolygone enthalten. Damit ist es nicht fehlerfrei möglich, Meeresflächen in die Karte zu integrieren. Daher gibt es die separat erstellten Sea Files.

mkgmap Option --process-exits.
Infos dazu in der Doku: http://www.mkgmap.org.uk/doc/options
Zusätzlich bitte in das mkgmap lines Style file schauen: http://www.mkgmap.org.uk/websvn/filedetails.php?repname=mkgmap&path=%2Ftrunk%2Fresources%2Fstyles%2Fdefault%2Flines. Dort nach Regeln mit dem Tag mkgmap:exit_hint suchen.

mgkmap Option --nsis
Additionally you need the Nullsoft Scriptable Install System tool. mkgmap creates a .nsi file which can be used with Nullsoft Scriptable Install System to build an installer.

Have fun!
WanMil

Die eintragen.bat ist nicht so schön. Man muss die als Administrator starten, sonst wird nichts in die Registry geschrieben.
Welche Karte hast du ausprobiert?
Alternativ kann man die Karte mit dem MapSetToolKit eintragen.

index verwende ich. Leider verstehe ich nicht, was die Option macht und wo die Adressen hinterher sein sollen. Die Doku ist für mich irgendwie unverständlich, was aber auch daran liegt, dass Englisch nicht gerade meine Stärke ist (:
mkgmap:admin_level2=DEU
Diese Zeilen habe ich einfach aus dem default-style übernommen. Was die machen, verstehe ich nicht.
Deine Erklärung hilft mir aber weiter :slight_smile:
Die Boundary-Datei, ist das die, die unter http://www.mkgmap.org.uk/download/mkgmap.htmlDownloads bei mkgmap angeboten wird?
Ich werde das mal ausprobieren mit der option.
Was macht { name ‘${name}’ } genau? Welcher Name und warum 2 mal?

Vielleicht möchtest Du Dir den Workflow von der Freizeitkarte http://freizeitkarte-osm.de/de/entwicklung.html anschauen und nutzen.

Das gucke ich mir mal an. Die Seite ist zwar Deutsch, nur was ist da gemeint? Dass man sich selbst die Freizeitkarte bauen kann?

Das reine Kartenbauen läuft bei mir eigentlich recht simpel ab. Ich habe eine batch-Datei. Darin wird mit “wget” bei der Geofabrik eine osm.pbf runtergeladen.
Danach wird das gesplittet und mkgmap läuft 2 mal drüber. Der zweite Durchlauf enthält die POIs, Einbahnstraßen und alle anderen Linien, die immer oberhalb der Straßen angezeigt werden sollen. Mit den entstandenen Kacheln werden mit “gmt” und “cgpsmapper Free” die tdb und die overview Map gemacht.

mkgmap kann zwar auch tdb und overview, aber immer nur für den jeweiligen Durchlauf. Für alle Kacheln aus beiden durchläufen bekomme ich das nicht hin, daher gmt und cgps.

Am Ende der Batch stehen die Kommandor für die Registry.

Die Bedienung ist also so:
Batch-Datei starten - warten - Karte mit neuen OSM Daten neu gebrauchsfertig.

Für das Veröffentlichen würde ich gerne die gmapsupp+tdb und overview hochladen und gmt mitliefern. gmt kann die gmapsupp splitten. Gehe ich richtig in der Annahme, dass dieser Prozess in einem Installer zusammengefasst werden kann?

Noch mal zu den bounds.
Ich habe mir diese Datei bei mkgmap runtergeladen:
bounds_20140128.zip
In die options von mkgmap schreibe ich jetzt:
bounds=C:\Kartenwerke\SpeicheNRW|bounds_20140128.zip

Mal schauen, was da jetzt passiert…

mkgmap bricht nicht ab, dafür steht das da:

SEVERE (LocationHook): C:\Kartenwerke\SpeicheNRW\Splitter\45000009.osm.pbf: Disa
ble LocationHook because bounds directory is unusable. Dir: C:\Kartenwerke\Speic
heNRW|bounds_20140128.zip

?

C:\Kartenwerke\SpeicheNRW|bounds_20140128.zip

Da ist ein Pipe-Symbol “|” statt Backslash "" im Pfad, falls das richtig kopiert ist.

Ein Beispiel für die Namensgebung, damit ich das verstehe:
Ich will einer Treppe einen Namen geben. Dahinter will ich die Anzahl der Stufen lesen können.
In OSM sieht das so aus:
highway=steps
step_count=30
name=“Hamburger Treppe”

Also muss ich mkgmap sagen:
highway=steps {name ‘${name}(${step_count})’} [0x08 road_class=0 road_speed=0 resolution 24 continue]

Ist das richtig?

Das erste name ist das Kommando, das ausgeführt wird - also “benenne”.

Das zweite name ist die Variable für den Namen, so wie er in den Rohdaten steht. Es könnte also auch zu ${ref} benannt werden (Autobahn) oder eine Kombination Name/Ref (z.B. primary, secondary, tertiary in Ortschaften) oder gar ein Name direkt vergeben werden (mache ich bei Doppelbelegungen um die Standardbezeichnung zu korrigieren).

Ja, vielleicht noch mit 'nem Leerzeichen vor den eingeklammerten Stepcount.

|
Syntax Error hat mich beim 64er schon geärgert :slight_smile:
–bounds=directory|zipfile

Das habe ich von der mkgmap Seite übernommen. http://www.mkgmap.org.uk/doc/options

Habe es durch ein \ ersetzt. Jetzt läuft die Kiste ohne Kommentare…

Danke!!!
Jetzt sehe ich da klarer.

Mein Beispiel:

highway=steps {name ‘${name}(${step_count})’} [0x08 road_class=0 road_speed=0 resolution 24 continue]

scheint nur bedingt zu funktionieren.

Wenn in OSM name und step_count vergeben ist, klappt es. Wenn der Name fehlt und nur die Anzahl der Stufen da ist, steht da nur “steps”.

Also muss ich jede Kobination abfangen? Nur name, nur step count und Beides?
So?:
highway=steps {name ‘${name} (${step_count})’ | ‘${step_count}’ | ‘${name}’} [0x08 road_class=0 road_speed=0 resolution 24 continue]

NRW läuft gerade. Mal abwarten, was passiert…

@wanMil
:smiley: Im Gerät finde ich jetzt Adressen!

Suche ich nach Orten, steht hinter Remscheid ein Deu. Bei den kleinen Ortschaften in Remscheid aber immer noch ABC.
So richtig, verstehe ich den Zusammenhang nicht. Die Syntax ist mir unklar admin_level2… admin Welcher Admin? Was bedeutet die Zahl?
Sorry für die vielen Fragen, aber manchmal brauche ich einfach den Zaunpfahl. Ihr habt mir hier heute schon richtig gut weitergeholfen!

Die Bezeichnung kommt vermutlich vom OSM-Tag :wink:

Ich muss gestehen, dass ich abgewunken hatte, als ich mir in OSM den Artikel zu Grenzen angeschaut hatte. Ich fange die Grenzen in meiner Karte lapidar mit

boundary=administrative [0x10e1e resolution 24-23 continue]
boundary=administrative [0x10e1f resolution 22-21]

ab.

OK, dann werde ich mich mal mehr damit befassen.

Noch mal zu den Adressen (und dem Zaunpfahl)
Das Oregon zeigt die Adressen jetzt.
Der PC findet diesbezüglich gar nichts. Die Adresssuche in BaseCamp ist mir suspekt, zum Testen nehme ich das alte Mapsouce. Da ist die Adresssuche ausgegraut.
Was muss ich tun?

Es fehlen noch die Einträge für die xxx_mdr.img und xxx.mdx in der Registry.

Egtl. musst du dich mit den Grenzen nicht weiter beschäftigen. Schau dir den default-style von mkgmap an. Aus diesem kannst du diewesentlichen Dinge für die Adresssuche übernehmen. Noch eine weitere anmerkung dazu: Diese Tags eignen sich auch dazu, Tags innerhalb von bestimmten Grenzen anders zu behandeln, als in innerhalb Anderer.

Ansonsten würde ich mir den “catch-all” bei den Grenzen gut überlegen. Auf den Handgeräten bekommt man mangels Überblick keine Vorstellung darüber, welche Grenze man nun passiert.