mkgmap -> gmapsupp -> Hintergrundproblematik

Hallo,

Habe mich in den letzten Tagen ausführlich in die mkgmap-Thematik eingearbeitet und konnte mittlerweilen eine eigene Karte incl. Höhenlinien erstellen (siehe Beiträge in http://forum.openstreetmap.org/viewtopic.php?id=16432 ). Die Karte funktioniert wunderbar in Mapsource.
Im Typ-File ist für die Polygon-ID 0x04b (Hintergrund, draw-order “1”) der Wert #FFFFFF (weiß) gesetzt und wird auch sicher erkannt (Tests mit #FF0000 → Hintergrund wird rot).

Problem: Sende ich nun die Karte aus Mapsource an das Garmin-Gerät (Legend HCx), so fehlt der weiße Hintergrund und die ekelig-gelbe Basemap scheint durch.

Also bastele ich mir ein Hintergrund-Polygon mit eigenem Key und Value und binde es per mkgmap in die Karte mit ein und gebe ihm in style und typ-file die ID 0x04c.

Problem: Das klappt prinzipiell, jedoch wird der Hintergrund trotz niedriger draw-order “1” über alle Kartenkacheln gelegt und man sieht somit nix mehr von der Karte.

Ich konfiguriere wieder alles so, wie es war und generiere per mkmap eine gmapsupp.img (Parameter “–gmapsupp”). Dann kopiere ich die Datei gmapsupp.img auf meine µSD-Karte ins Verzeichnis “Garmin” und schalte das Gerät ein.

Problem: Die Karte wird angezeigt, jedoch wird die Darstellung laut meinem Typ-File vollständig ignoriert. Man sieht den original-Garmin-Style mit den gefleckten Wäldern usw. Von meinem Typ-File ist weit und breit nichts zu sehen. In Mapsource jedoch stimmt alles.

Alles was ich will ist doch nur eine Karte nach meinem Style mit Höhenlinien und weißem Hintergrund auf dem Garmin. Kann doch nicht so schwer sein.

Wer kann mir Tipps geben?

Danke & Gruß

Thomas

Vielleicht hier dir diese Notiz weiter:

- Einen Sonderfall stellt das Polygon “0x4b” (Background) dar. Hierüber ist es möglich, den allgemeinen

Hintergrund (der keine Elemente / Objekte enthält) farblich festzulegen. Hierzu muß das Polygon die

“Draworder 1” haben und es dürfen keine weiteren Objekte mit “Draworder 1” existieren.

Das funktioniert aber nicht auf allen Geräten - deshalb verwende ich diese mkgmap-Compiler-Option:
generate-sea:multipolygon,no-sea-sectors,extend-sea-sectors,close-gaps=5000,land-tag=natural=land

Und habe in polygons dies:

------------------------------------------------

Technische Tags

- zur Erzeugung von Meer und Land

- entspricht dem Kartenhintergrund

------------------------------------------------

Meer

natural = sea [0x32 resolution 17]

Land

natural = land [0x3a resolution 17]

Gruß Klaus

Hallo, das klingt für mich eher so, als würden Family-ID und Product-ID von Karte und TYP-File nicht identisch sein. MapSource und BaseCamp ist das egal, aber die Handgeräte nehmen dann den Defaultstyle oder du übergibst mkgmap kein TYP-File, dass es in die gmapsupp reinpacken kann.

Poste mal den kompletten Aufruf von mkgmap mit allen Parametern.

Wie schon hier geschrieben: Family-ID von Karte und TYP-File identisch?
Zweite Möglichkeit: Welche anderen Karten hast Du noch drauf? Ist da zufällig eine mit der gleichen Family-ID dabei? Das gibt auch diese merkwürdigen Effekte.

Thorsten

Danke für die Antworten!

Wegen der gmapsupp.img aus mkgmap: Ich Vollpfosten habe tatsächlich vergessen, mkgmap das Typfile als Parameter zu übergeben. Jetzt funktioniert das mit der Karte auf dem Garmin soweit. Allerdings wieder nur ohne Hintergrund, wenn sich dort keine Polygons befinden. Somit habe ich wieder das Ursprungsproblem.

@toc-rox:

0x04b ist im Typfile definiert und draworder auf “1” gesetzt. Alle weiteren Objekte besitzen eine höhere draworder.

Habe dann die natural=* in meinem Stylefile polygon ergänzt und an mein Typ-File angepasst. natural=sea ist nun 0x03c (See) und natural=land ist 0x052 (Wiese). Leider sehe ich nun wieder ausschließlich den Hintergrund (Wiese), darüber die Höhenlinien und POIs. Alles andere liegt darunter.

Irgendwo hängt’s noch…

Grüße, Thomas

Ist vielleicht tatsächlich was Geräteabhängiges. Habe mir nun erst mal mit einer komplett separaten Hintergrundkarte geholfen, die ich von Mapsource aus zusammen mit der normalen Karte ans Gerät sende. Ist zwar nicht die eleganteste Lösung, funktioniert aber sicher.

Gruß, Thomas

Funktioniert leider doch nur halb. Sobald ich die Autorouting-Funktion aktiviere, sehe ich den lila Tatzelwurm nicht. Erst wenn ich meinen Hintergrund UND die Basemap abschalte, geht es. Bin mir sicher, es hat etwas mit den Transparenz-Einstellungen zu tun. Problematisch, wenn man, wie in meinem Fall, drei Karten übereinanderlegt (Hintergrund, Map, Höhenlinien).

Aber…

Habe bei meinen unzähligen Versuchen herausgefunden, dass man in der Splitter-Datei template.args für jedes Splitter-File separat die Transparenz einschalten kann. Für die Cracks unter Euch ist das möglicherweise nichts Neues.

Beispiel:

mapname: 19991001
description: Meine_Karte
input-file: 19991001.osm.pbf

mapname: 19992001
description: Höhenlinien
transparent
input-file: 19992001.osm.pbf

Außerdem scheint der Mapname die Zeichenreihenfolge zu beeinflussen, so dass 19991001 unter 19992001 gezeichnet wird.

Meine Höhenlinien-Schicht ist nun transparent, die Karte nicht. Eine Hintergrundkarte brauche ich so überhaupt nicht mehr. Autorouting funktioniert einwandfrei.

Vielleicht für den ein oder anderen unter Euch eine interessante Information.

Gruß, Thomas