Mkgmap options / Erstelle Overlay mit Unterkünften

Hallo,

ich bin gerade dabei mir quasi ohne viel Vorerfahrung eine *.img aus pbf Daten von Geofabrik zu erstellen. Mein Ziel ist, eine Karte zu haben, die ich als Overlay in QMapShack verwenden kann, kompatibel für das Garmin Navi ist und nur Unterkünfte enthält.

Mit osmconverter habe ich aus der PBF-Datei eine *.osm erstellt:
$osmconvert kosovo.osm.pbf >kosovotest.osm

Meinem Verständnis nach, werden alle Daten aus der pbf mit in die osm geschrieben, wenn keine Optionen genannt sind, was auch nicht zutreffend sein kann.

Dann erstelle ich mit mkgmap die *.img, die hier nur die POIs camp-site enthalten soll:
$mkgmap -v --latin1 --mapname=54887852 --description="Kosovo Test" --add-pois-to-areas --pois-to-areas-placement=[tourism=camp-site] kosovotest.osm

In QMapShack ist danach die Karte sichtbar und enthält Gebäude und die Stadtnamen, allerdings glaube ich, da ist trotzdem irgendwas nicht wie gewünscht passiert, denn alle Gebäude sind zB "Fabrikgebäude’. Auch ist die Darstellung teilweise nicht vorhanden, dafür aber eine rote Schraffierung.

Was muss ich tun, wie müssen die Optionen angewendet werden? Vllt hat jemand einen hilfreichen link? Die man pages der eingesetzten Software habe ich bereits studiert, auch ist mir das Prinzip hinter osm klar, aber ich finde nirgends ein Tutorial oder ähnliches, dass mir bei diesem Vorhaben weiterhilft.

Grüße M.

Some of the issues that you’re seeing (with QMapShack) are similar to what Allan Mustard had here with BaseCamp. I suspect that you have a number of problems:

  • QMapShack is a bit limited in what it can render, compared with a real Garmin handheld
  • The default mkgmap map style (which I guess you’re using) is a bit rubbish for area mappings - hence all your “factory buildings”.
  • You’re making things harder for yourself by converting .pbf files to .osm. There’s no need; mkgmap can read .pbf natively.

People more familiar with QMapShack than I are welcome to leap to its defence of course - I did think about creating a mkgmap map style explicitly targeting it, but didn’t bother in the end because I couldn’t think of a situation when I would use it.

If you’re trying ti figure out how to do things better, this github page, this diary entry and this page might be helpful - and also Allan’s here.

2 Likes

Hallo Maiskolben,

Die Darstellung von IMG-Karten wird über eine so genannte TYP-Datei festgelegt. Die TYP-Datei kann als separate Datei zur IMG-Datei angegeben werden oder in die IMG-Datei eingebettet werden. So wie du vorgehst, erstellst du eine Karte ohne eingebettete TYP-Datei. QMapShack (QMS) zeigt diese daher mit einer Default-Darstellung an. Das erklärt die “Fabrikgebäude” und die rote Schraffierung. Auf dem Garmin-Navi wird eine solche Karte ebenfalls mit einer Default-Darstellung angezeigt, die aber nicht identisch mit der von QMS ist, insbesondere nicht die rote Schraffierung hat.

Will man die Darstellung in QMS verbessern, muss man daher eine eigene TYP-Datei verwenden. Eine TYP-Datei kann man sich irgendwo im Netz besorgen, aus einer IMG-Datei, welche eine eingebettete TYP-Datei enthält, mit GMapTool extrahieren, oder mit einem TYP-Editor, z.B. TYPViewer, selbst erstellen.

Hat man eine TYP-Datei, kann man diese in QMS explizit der Karte zuweisen. Das geschieht im Karten-Fenster in den Details der Karte. Komfortabler ist es, wenn man die TYP-Datei in die IMG-Datei einbettet. Das kann man beim Erstellen der Karte mit mkgmap machen, indem man die TYP-Datei einfach als weitere Eingabe-Datei angibt, oder indem man die TYP-Datei nachträglich mit GMapTool in die IMG-Datei integriert.

Wenn es nur darum geht, Unterkünfte in QMS in einem eigenen Layer darzustellen, dann genügt dafür vielleicht auch eine aus den OSM-Daten erstellte GPX-Datei. Für Campingplätze gibt es solche Dateien hier zum Download. Für andere POI-Typen kann man sich GPX-Dateien mit Overpass Turbo erstellen.

1 Like

Just one thing to add here - a TYP file control what sorts of features a Garmin device knows about (specifically, how it is rendered). However, what OSM feature maps to what Garmin feature is controlled by the “mkgmap map style” - the main one I use (designed to process the results of lua transforms) is here, and there’s a simpler one here. You can change the map style without editing a TYP file (which is more complicated).

1 Like

Hallo SomeoneElse,
danke für den Hnweis auf die gthub Seite. Ich habe bereits gestern die Inhalte daraus in meine style.style Datei kopiert.

Die Datei style.style ist folgendermaßen aufgebaut:

<<<version>>>
<<<info>>>
<<<lines>>>
<<<options>>>
<<<points>>>
<<<polygons>>>
<<<relations>>>

mit je dem Inhalt aus Deinen Links (aj3).

allerdings ändert sich dadurch nichts und ich vermute, dass ich da nur die default Styles von mkgmap kopiert habe, die ohne die Optionen auch genutzt worden wären.

Ich suche noch nach einer Tabelle, in der die Garmin IDs zu finden sind. Es gibt eine für Ground Truth Standard Garmin Devices.

Mein Setup ist folgendes:
OS Debian Linux, qmapshack, mkgmap
OSM: liechtenstein-latest-osm.pbf (Liechtenstein Map, 5 MB)
Test-TYP: Freizeitkarte-osm.de (small & contrast)

Wine und typwiz möchte ich nicht verwenden, doch trotzdem danke für den Hinweis auf die wahrscheinlich einfachere grafische Lösung! Die würde ich mir für Linux wünschen.

Wenn ich die TYP Datei von Freizeitkarte auf die (noch fehlerhaft) gerenderte Map anwende, sind die Gebäude korrekterweise auch als Buildings gekennzeichnet, aber einige POIs werden nicht angezeigt.

mkgmap Input:
$mkgmap --style-file=style.style --check-styles --read-config=config.txt liechtenstein.osm.pbf

config.txt input:

mapname=13054587 #random 8
description=Testkarte
country-name=Liechtenstein
#latin1
#route
#gmapsupps

Wenn ich die so erzeugte .img auf das Garmin (Dakota 20) hochlade, ist die Anzeige genauso, wie in QMS. Straßen und POIs sind nicht da oder werden anders gerendert.

Ich gehe davon aus, 1) die pbf Datei ist einwandfrei. Und, 2) dass mkgmap hier per default eine brauchbare Karte ausgibt (die nicht unbedingt cool in qms aussehen muss.) Und dann 3), dass die Styleoptionen die angewendet wurden, auch für das Garmin passen.

Ich will dazu einmal die style.style nackt machen und mit nur einer Angabe für Polygone auf Navi und QMS testen, ob die Wohnhäuser als Fabrikgebäude angezeigt werden.

Danke für die Hilfe!
M.

Hallo rainerU,
danke, dass mit den GPX Dateien schaue ich mir mal genauer an. Könnte dann vllt auch ok sein, mit dem Design der Freizeitkarte zu leben und die Campsites trotzdem präsent bei der Planung auf der Map zu haben. .)

I think that GroundTruth was some very old software for creating maps for Garmin devices, that largely got eclipsed by mkgmap.

I have used this as a suggestion for what values appear as what (in either QMapShack or on a Garmin GPSMap device). Not all of them work as expected. When I’m creating the input file for mkgmap the translation script I use has some comments that explain what do what. Unfortunately I don’t have a comprehensive list of what does what. Note that the comments in there refer to mkgmap used without a TYP file.

1 Like

Hallo!
Danke für die sehr nützlichen Infos!

Zu meinen kleinen Erfolgen bisher:

wenn ich die Configfile & Stile && TYP mitgebe
$mkgmap --style-file=style.style --gmapsupp --family-id=8000 --read-config=config.txt liechtenstein.osm.pbf osm.typ
sieht die Liechtensteinkarte ganz ok aus, beim ersten drüberschauen. Doch Gebäudenamen sind allerdings unverändert (offenbar, weil ich an der Stylefile nichts geändert habe)

Die TYP Datei kommt von https://github.com/Jorisbo/Mkgmap-Mapnik-Style-Garmin/blob/master/osm.txt

Muss mich selbst nochmal an mein Ziel erinnern: Campingplätze und ggf. Unterkünfte eines beliebigen OSM Bereichs (zB die Alpen) in eine *.img zu packen und diese in QMS und auf dem Navi zu benutzen. —> gaaanz viel später will ich eine fancy 3d Map bauen, routable. :slight_smile:

Ich kann jetzt 1) eine Map aus einer pbf erstellen, die 2) eine Typ File enthält und 3) im großen und ganzen schon ok aussieht. Ohne Routing, Sperrungen usw. Und ich bekomme es auch dank der Hilfe nun hin, einzele Elemente der OSM Datenbank auf die .img zu rendern. :smiley: Also eigentlich: Ziel erreicht.

Aber ich würde dennoch weiter anstreben, eine eigene kleine Wanderkarte aus den OSM Daten zu bauen, wo auch zB Höfe und Wasserquellen und anderer nützlicher Kram enthalten ist.

Ich weiß nicht wie ich, außer Try & Error, zwischen den Teilen OSM und Garmin überzetzen und vermitteln soll. Auf taginfo.openstreetmap.org finden sich alle Keys und Tags, die derzeit in den OSM Daten genutzt werden. Diese können im Stylefile angesprochen werden. Hier der key building. Eine Unterscheidung, was von den Keys wo hin gehört, gibt es auf der Seite mWn nicht. → zB: buildings für Polygone, tourism für Punkte.

<<<polygons>>>
# building tag should be last
building=* {name '${name}'} [0x13 resolution 24]

In der Basisdatei für das TYP File (her osm.txt) werden dann die IDs von Garmin angesprochen, die dann wieder mit dem Stylefile korrespondieren müssen. Uff.

[_polygon]
type=0x13
;GRMN_TYPE: Large Manmade Areas/GENERIC_MANMADE/Other or generic manmade area, such as a building/Non NT
String1=0x01,Bâtiment
String2=0x02,Gebäude
String3=0x04,Building
String4=0x03,Gebouw
String8=0x10,Edifício
String9=0x05,Edificio
ExtendedLabels=Y
FontStyle=NoLabel (invisible)
CustomColor=No
Xpm="0 0 1 0"
"1 c #D9D0C9"
[end]

Also:
style: polygons building → 0x13
typ: polygon type → 0x13

Allerdings müssten nach meinem Verständnis nun bei den hier genutzten Daten '(osm.txt, Stylefile und Liechtenstein.pbf) auch die Gebäude korrekt mit Namen angezeigt werden, nämlich hier Gebäude. Oder verstehe ich da was falsch mit den Hexwerten?

Das Wort Fabrikgebäude, mit dem alle Gebäude derzeit noch eingeordnet wurden, ist weder in der osm.txt Vorlage für die TYP, noch in den Styles enthalten.

Viele Grüße! M.

Das kommt vom Default-TYP von QMapShack, wie man in dieser Quelldatei sehen kann. Nach “Man-made” suchen, “Man-made” wird bei deutscher Oberfläche zu “Fabrikgelände”. Anscheinend benutzt QMS diesen Text als Default, wenn das Objekt in der IMG-Datei keinen Namen hat. Ich würde mal im Stil etwas wie das hier versuchen:

building=* & building!=yes  { name '${name}' | '${building}' } [0x13 resolution 24]
building=* [0x13 resolution 24]
1 Like

Hallo rainerU,
woraus schließt Du, dass QMS hier aus Man Made Area einen Industrial Complex macht?
Der Wert ist dort auch 0x13 für die Manmade Flächen, Industrial Complexes sind dort mit 0x0c aufgeführt. Ich käme nicht automatisch darauf, dass QMS hier was anderes macht. (Was es offensichtlich ja macht.)

Ich habe Deinen Vorschlag ausprobiert:

building=* & building!=yes  { name '${name}' | '${building}' } [0x13 resolution 24]
building=* [0x13 resolution 24]

und nun werden alle Tooltips der Gebäudepolygone korrekt angezeigt. Darunter sind zwar auch einige Fabrikgelände, aber ich denke, dass ist dann auch korrekt so. War niemals in Liechtenstein. ^^

Danke für den Tip, im Quelltext von QMS nachzusehen. Ob ich zukünftig aber daraus schlau werde, ist eine andere Sache. Ich nehme daraus auf jeden Fall sowas wie eine komplette Liste für Polygone und Linien mit. :slight_smile:

Weil es eine Übersetzungsdatei gibt, in der Man-made mit Fabrikgelände übersetzt wird.

Das sind vermutlich Gebäude, die in OSM mit building=yes erfasst sind. Das kann man ja leicht überprüfen.

1 Like

Ja, blöd, irgendwie. :slight_smile:

qmapshack/src/qmapshack/locale

<message>
    <location filename="../map/CMapIMG.cpp" line="381"/>
    <source>Man-made area</source>
    <translation>Fabrikgelände</translation>
</message>
1 Like