OSM Composer V0.8 verfügbar

Jetzt kann man in den Fehlermeldungen was erkennen. Es sieht danach aus, als ob Deine Renderregeln kaputt/unvollständig sind - oder abgeschaltet oder gefiltert. Die Exceptions wurden ausgelöst, weil er Wandermarkierungen für Routen nicht gefunden hat. Das Leeren von Overlay/Icon Aktionen passiert ebenfalls, wenn er die zugehörigen Regeln nicht findet.

Der letzte Fehler mit dem “v” ist nur eine defekte XML-Datei, ein Folgefehler.

Die Frage ist jetzt bloß noch warum passiert das bei Dir? Und warum läuft er bei mir mit den gleichen Daten einwandfrei durch?

Hallo Henning,

ich hatte ein ähnliches Verhalten (Overlay und Icon Aktionen waren leer).
Mittlerweile habe ich alle betroffenen Ersetzungen neu erstellt und es geht wieder einwandfrei.

Hast du den Rechner in der Zwischenzeit vermutlich auch mal rebootet?

Das Verhalten mit den Icons und Overlays tritt jetzt auch nicht mehr auf. Reboot hab ich auch schon gemacht, ohne Erfolg.
Ich hab jetzt mal die Renderregeln und Kartenobjekte für die Wanderwegmarkierungen deaktiviert. Sowie die Route.tbl entfernt.

Jetzt läuft es auch durch. Was ich nur nicht verstehe ist, dass ich diese Markierungen überhaupt nicht verwende. Ich kennzeichne die Radwege ja lediglich mit einem Overlay.

Edit:

Beim Versuch, die Routen zu bearbeiten, ist folgendes passiert. Ich öffne einen Eintrag und beim speichern (oder weiter/zurück) wird er deaktiviert.

Mir kommt da auch noch eine Idee für eine der nächsten Versionen. Ersetzungsbedingungen mit Relationen. Bspw.
Wenn Weg einer Relation angehört und diese Relation ein Tag x=y enthält, dann…

Ich hab gerade eine weitere Stelle gefunden:

D:\OpenStreetMap\map_composer\Tools\srtm2osm\Srtm2Osm.exe -o D:\OpenStreetMap\map_composer\tmp\contour_sample.osm -large -corrxy 0.0005 0.0005 -step 20 -cat 400 200 -bounds1 53.1 15.8 53.2 15.9 

Hallo Nop,

ich habe ein wenig experimentiert, da ich eine Lösung für den fehlenden Kartennamen bei der Auswahl im Gerät finden wollte.

Hier das Ergebnis:

Man kann die Datei gmapsupp auch direkt mit mkgmap erstellen lassen, der Parameter --gmapsupp muss dafür im Aufruf mit angegeben werden (Die Angabe im Parameterfile hat bei mir nicht genügt).
Siehe da, der Name der Karte ist nun im Gerät sichtbar, und die Beschreibung wird in der Zeile darunter angezeigt.
Wenn man mehrere Karten mit dem gleichen Namen und der gleichen Karten-ID (aber unterschiedlichen Produkt-IDs und Beschreibungen) generiert, dann werden alle zusammen zum Aktivieren angeboten - also perfekte Auswahlmöglichkeit!
Ich kann daher mehrere kleine (z.B. auch zusammenhängende) Karten erzeugen, auf das Gerät laden, und alle gemeinsam aktivieren.

Noch ein Hinweis: Beschreibung und Kartenname können auch Leerzeichen enthalten, ich gebe den String daher immer unter ‘Hochkomma’ ein, da der Composer die Hochkomma beim Aufruf nicht selbst ergänzt.

Jetzt möchte ich nur noch die Höhenlinien in einen eigenen abschaltbaren Layer auslagern, aber auch das dürfte recht einfach sein.

Das gmaptool http://www.anpo.republika.pl/download.html kann mehrere vorgefertigte gmapsupp zusammenfügen, der Aufruf dazu lautet einfach:
gmt -jo gmapsupp.img basiskarte/gmapsupp.img hoehenlinien/gmapsupp.img

Die Höhenlinien müssen dann natürlich mit einer anderen Family-ID generiert werden, da sie sonst nicht einzeln ausblendbar wären.
Die Parameter beim Generieren der Höhenlinien sind dann idealerweise: --transparent --draw-priority=20 (also größer als prio der Basiskarte)

Ich hoffe, du kannst einige dieser Funktionen in die nächste Version des Composers einbauen. Das Tool wird auf diese Art sicher immer perfekter werden.

Meine Ideen zum Routing schreibe ich dann auch noch zusammen, aber da bin ich noch am Sammeln der notwendigen Infos.

Ich wünsche allen die hier mitlesen noch ein schönes Weihnachtsfest.
Walter

Hallo,
mit dem Parameter --gmapsupp hab ich auch schon rumgespielt. Bei mir sieht die Karte auf dem Oregon dann aber vom Style her aus, wie die CityNavigator. Muss man dann noch irgendwie ein TYP-File angeben?

Hast du schon Erfahrungen mit --index machen können und kannst davon berichten? Ansonsten werd ich mich die Tage mal damit etwas beschäftigen (müssen). Die Adresssuche gehört zum Routing ja irgendwie dazu :wink:

Frohe Weihnachten noch

Hallo Henning,

natürlich muß das TYP-File angegeben werden, woher sollte er denn sonst die Symbole kennen.

java -Xmx1400M -jar D:\OSM_Composer\Tools\mkgmap.jar --tdbfile --preserve-element-order -c D:\OSM_Composer\data\osmc_options D:\OSM_Composer\data\xxx_garmin.osm ** --gmapsupp D:\OSM_Composer\data\88330000.TYP **

Mit dem MDR Indexfile habe ich mich noch nicht beschäftigt. Das kommt erst dann, wenn der Composer die Routing-Funktion unterstützt (ohne die bringt es ja nichts)

Walter

Ich habe das seltsame Verhalten, dass bei mehrfarbigen Wegen nur eine Farbe im Typfile landet.
Hat jemand Erfahrung mit Wegen, die sich aus mehreren Farben zusammensetzen (z.B. Treppen)?

Weiters erscheinen mir manche Wege am Gerät nur mit 1 Pixel Breite, obwohl die Breite im Typfile nachweislich 3 Pixel ist.
Gibt es eine Einschränkung, dass manche Linien nicht dicker als mit 1 Pixel angezeigt werden?

Schienen (railway=rail) werden mir erst in der Zoomstufe 24 (ab 200m) angezeigt, auch wenn der Wert auf 19 gesetzt ist. railway=rail [0x14 resolution 19]
Auch manche Symbole werden erst ab 80m angezeigt, obwohl die Zoomstufe wesentlich höher gewählt ist.
Gibt es hier einen Effekt, dass bestimmte Layer beim Rendern voll sind, und die entsprechenden TAGs nicht mehr in diesem Layer platziert werden?

Gibt es eine einfache Möglichkeit, Adressen (addr:xxx) zu einem POI anzuzeigen? In der All-in-one ist das recht schön gemacht.
Ich habe es mal mit Ersetzungen probiert, das sieht dann so aus:

Name
(Straße)
(Hausnummer)
(Postleitzahl)
(Ort)

Mit dem mkgmap Parameter location-autofill habe ich auch experimentiert, das sieht dann aber nur so aus:

Fix My Address
Ort, EU

Das sind viele Fragen auf einmal, aber vielleicht gibt es ja jemanden, der mit ähnlichen Effekten schon mal zu tun hatte.
Walter

Das mit den Schienen ist mir auch schon aufgefallen. Da in der CityNavigator-Karte die Schienen auch oberhalb von 200m nicht angezeigt werden, gehe ich mal davon aus, dass es am Garmin-Gerät liegt.

Wie gibts du den gmapsupp-Parameter denn an? ich hab in der neuen Optionsdatei eine Zeile erstellt:


gmapsupp D:\test\abc.TYP

Leider funktioniert das nicht so recht. Oder rufst du mkgmap nicht direkt aus dem Composer auf?

Hallo Henning,

mit der Angabe im Parameterfile hat es bei mir auch nicht funktioniert (hatte ich auch geschrieben).
Ich habe derzeit keine andere Möglichkeit gefunden, als mkgmap im Anschluss nochmals aufzurufen.

Wenn das mit den Schienen ein generelles Problem beim Oregon ist, dann kann ich mir ja sparen, den Fehler in meiner Konfiguration zu suchen.

Walter

Das ist schon klar, ich habe alle diese Möglichkeiten schon mal ausprobiert. Letztendlich ist aber sendmap das einzige Tool, das die Karte gleich direkt auf das GPS laden kann, deshalb wird es von Composer verwendet. Und wie gesagt, mir kommt es darauf an, den Standardfall so einfach wie möglich zu gestalten - und damit hat man sofort ein Einsatzbereites GPS.

Das Erzeugen von mehreren Karten in einem gmapsupp.img ist definitiv eine stark fortgeschrittene Aktion, da finde ich es schon in Ordnung, wenn die Profis noch einen Bearbeitungsschritt von Hand brauchen. Ich baue gern zusätzliche Möglichkeiten ein - wie z.B. die eigenen Parameter für’s Optionsfile - aber ich will den Normalfall des Anwenders, der froh ist überhaupt seine Karte zu Gesicht zu bekommen, komplizierter machen.

bye

      Nop

Das kann ich bestätigen - Bei Wegen scheint der Garmin nur die erste Farbe zu verwenden, alles andere wird transparent.

Das habe ich noch nicht beobachtet. Es ist aber so, daß nicht alle Eigenschaften an allen Linientypen verändert werden können - manches ist im Gerät festverdrahtet. Z.B. war ich nie in der Lage, Höhenlinien im Typfile zu verändern.

Nein. Es scheint aber so, daß bestimmte IDs eine hartverdrahtete Sonderbehandlung haben. Zwei Objekte mit gleichem Zoomlevel werden dann in der Praxis zu unterschiedlichen Zoomleveln eingeblendet. Da hilft wohl nur mit anderen IDs rumspielen, ob’s dann besser wird.

Leider hab ich noch nie eine Beschreibung dieser ganzen Sonderfälle irgendwo gefunden.

Wie soll es denn funktionieren? Eine zusätzliche Ersetzungsregel dafür läßt sich einbauen.

Beim autofill könnte Dir das Verhalten von Composer in die Quere kommen, daß Tags für die keine Renderregel existiert, weggelöscht werden, und deshalb für den Autofill von mkgamp schon gar nicht mehr vorhanden sind.

bye
Nop

Was könnte man denn dagegen tun? Die Adressdaten sollen ja normalerweise nicht gerendert werden, sondern lediglich zum Suchen vorhanden sein. Die addr:xxx-Tags generell drin zulassen ist wahrscheinlich nicht in deinem Sinn.

Hab mir noch keine Gedanken gemacht - eine Adreßsuche in einer Wanderkarte ohne Routing macht nicht allzuviel Sinn.

Wenn wir uns über Routing Gedanken machen, können wir das auch angehen. Vielleicht kommen die Tags dann einfach auf die Whitelist wie z.B. name.

bye
Nop

Hallo Nop,

ein Schalter wäre fein, um Sendmap abzuschalten (gibt es ja bereits “auf Gerät laden”) und alternativ das gmapsupp gleich mit mkgmap zu erstellen.
Dann muss in der Reihenfolge nur das TYP-File vorher erstellt werden und man spart sich einen extra Lauf.

Ich werde versuchen, die Multilayer-Karte mit einem eigenen Lauf im Anschluss an den Composer zu erzeugen, ein Batch-File läßt sich ja komfortabel aufrufen.
Derzeit mache ich damit meine routingfähige Karte, mehr zu diesem (seit gestern erstmals erfolgreichen) Versuch poste ich demnächst.

Einen kleinen Wunsch hätte ich für Multi-Karten aber schon an den Composer.
Ich erzeuge derzeit mehrere Karten mit gleicher Karten-ID und unterschiedlicher Produkt-ID.
Der Kartenname sollte daher immer gleich sein, die Beschreibung unterschiedlich.
Wäre es daher möglich, bei den erzeugten Output-Files nicht nur den Kartennamen als Filename zu verwenden, sondern zusätzlich auch Beschreibung oder Produkt-ID?
Derzeit löse ich das ebenfalls im Post-Batch-File.

Der Fehler bei mehrfarbigen Wegen liegt nicht am Garmin Gerät sondern an der Erstellung des TYP-Files.
Wenn man das erstellte TYP-File mit dem Editor öffnet, sind die Wege bereits einfärbig.
Der Fehler mit der 1 Pixel Breite lag an mir, ich habe es jetzt mit einem Overlay gelöst, da funktioniert es.

Für Schienen habe ich folgende Lösung gefunden.
Ich verwende 0x14 nur mehr für tram (die möchte ich ohnehin erst bei höchster Auflösung sehen) und nehme 0x39 für alle anderen Schienen.
Bei manchen POIs habe ich ebenfalls den Effekt beobachtet, da experimentiere ich (wie du auch) eben mit anderen IDs.

Bezüglich der Adressen im Namen.
Übersichtlich wäre eine Anzeige in dieser Form: “(Straße Hausnummer, Postleitzahl Ort)”, also die Klammer nur einmal um alles.
Es gibt doch den Tagfilter, wo man TAGs ignorieren oder zusammenfassen kann, ev. wäre eine dritte Möglichkeit “erhalten” sinnvoll, um die Werte für ein mkgmap Feature nicht zu verlieren.
Es geht mir dabei weniger um eine Adress-Suche im Gerät als vielmehr darum, bei einem POI Adresse und Telefonnummer abrufen zu können.

Bei der Ersetzungsregel “Tag in Namen übernehmen” fehlt mir noch die simpleste Variante “Text in Namen übernehmen”.
Als praktikablen Workaround habe ich die Lösung gefunden, zuerst einen Dummy-TAG einzufügen und mit der nächsten Regel diesen zu übernehmen.
Anwendungsbeispiel: Bei Apotheken mit dispensing=yes möchte ich (dispensing) im Namen und nicht (yes).

Eine weitere Ersetzungsregel geht mir für einen Spezialfall auch noch ab, die ist aber vermutlich nicht ganz easy.
Ich habe alle Autohändler (car und car_parts) auf 2f07 gelegt, sonst findet sie der Oregon nicht in der POI-Liste. Das Garmin-Symbol dafür ist einfach ein kleines Auto.
Jetzt möchte ich als Overlay das Symbol der jeweiligen Automarke darüberlegen (ich hoffe, die Idee ist nicht zu abwegig).
Jeder Autohändler soll dann 2 Eintragungen haben, eine mit 2f07 für die POI-Liste und eine zweite für die Darstellung des individuellen Overlays je nach Name der Marke.
Es gibt für Flächen die Ersetzung “Icon auf Fläche setzen”, wäre so etwas ähnliches für Flächen und Punkte implementierbar “Overlay auf Fläche/Punkt setzen” wobei das ursprüngliche TAG erhalten bleibt.
Meine derzeitige Lösung verwendet “Icon einblenden”. Damit sitzt das Icon aber an der Ecke statt in der Mitte und für reine Punkte habe ich derzeit gar keine Lösung gefunden.

Mein wichtigstes Thema ist aber das Routing, dazu bald mehr.
Walter

Na, das waren ja ein Haufen Vorschläge. Kann momentan nicht auf alle eingehen

Wie wäre es: Bei ProduktID > 1 wird die Nummer zusätzlich aufgenommen, bei 1 bleibt alles wie’s ist.

Super Lösung, damit kann man den Namen wie früher generieren oder auf Wunsch auch den erweiterten.
Derzeit helfe ich mir damit, dass ich im Postbatchfile ein rename eingebaut habe.
Die Hochkomma beim Namen, wie ich in einem früheren Posting mal geschrieben hatte, sind doch nicht notwendig.
Es werden Leerzeichen auch so erkannt, keine Ahnung, warum es bei mir zuerst nicht funktioniert hatte.

Mein nächster Schritt ist die Einblendung der Höhenlinien, auch dazu habe ich gleich eine Frage.

Es gibt bei den Renderregeln mehrere vorgefertigte Einträge:
contour_ext=evevation_minor / _medium / _major und contour=elevation

Ich nehme an, die entsprechenden TAGs werden vom Composer selbst erzeugt.
Obwohl ich verschiedene Zoomlevel angegeben habe (aktuell habe ich 24, 22 und 20 gesetzt) werden alle Höhenlinien gleichzeitig bei 300m (Level 23) eingeblendet.
Mache ich da irgendetwas falsch, oder ist das wieder so eine Sonderbehandlung des Oregons, die man nicht ändern kann?

Die Zoomlevel werden korrekt in das mapstyle file übertragen.
Der Eintrag bei den Regionen ist auf 10m/50m/100m gesetzt, alle Ebenen beschriften (das funktioniert auch soweit).

Noch etwas: Im Plan habe ich sogar Höhenlinien gefunden, die sich überschneiden. Ich vermute, das folgt aus einer Ungenauigkeit der Rohdaten.

Ich hab den Fehler gefunden, lag nur an mir. Wenn man mit lauter Scripts ständig die mapstyle files hin und her ändert verliert man ab und zu einfach den Überblick.
Dafür bin ich auch nah dran, eine Multi-Layer Karte zu erstellen. Dann kann ich die Höhenlinien mit den Wandermarkierungen gezielt am Gerät ein- und ausblenden.
Bei der Straßennavigation sind die Höhenlinien eher hinderlich, daher habe ich bisher komplett auf Höhenlinien verzichtet.