mkgmap - Symbol auf Linie wie geht das?

Hallo, eine Frage an die mkgmap Profis, wie bekommt man Symbole auf einen Weg/Linie.
Also ich bin gerade dabei mir einen mkgmap Style für mein Dakota20 zu basteln und nach einigen Recherchen im Netz hab ich auch schon einige Fortschritte erreicht aber leider hab ich es noch nicht geschafft ein Symbol auf eine Linie zu bekommen.
Also ich habe jetzt im Style in der Datei „lines" folgenden Wert eingetragen aerialway=cable_car [0x15 resolution 22] und damit wird auch eine Linie für den Kabinenlift gezeichnet jetzt möchte ich aber auf diese Linie noch ein Symbol haben dazu hab ich in der Datei „points" den Eintrag aerialway=cable_car [0x1B0A resolution 20] erstellt aber nicht geschieht.
Also es wird kein Symbol auf der Linie des Kabinenlift gezeichnet. In dem dazugehörigen TYP sind aber die Daten vorhanden.
Wo liegt der Fehler?
Danke für alle Infos und noch schönes WE, Jörg.

Meines Wissens nach gibt es diese Möglichkeit bei mkgmap direkt derzeit nicht.

Wenn du jedoch den OSM-Composer verwendest, dann geht es ganz einfach,
denn der Composer hat einen internen Präprozessor, der so eine Funktion bietet.

Der Composer hat noch einige weitere Vorteile.
Der größte Nachteil ist jedoch, dass er mit dem Routing nicht so ganz klar kommt.
Das ist auch der Grund, warum ich ihn derzeit nicht einsetze.

Walter

du musst den entsprechenden switch bei mkgmap in der commandline hinzufügen, dann gehts auch ohne Krücken… (und du kannst in etwa einstellen wo und wie viele POI gesetzt werden…)

Hallo Jörg,

dafür gibt’s den Schalter “–add-pois-to-lines”.

Damit wird jeder Punkt von allen Linien mit den Tags der jeweiligen Linie selbst versehen plus den zusätzlichen Tags
mkgmap:line2poi=true
mkgmap:line2poitype=xxx

xxx steht dabei für die Position des Punktes in der Linie selbst: start, end, mid oder inner.

Aufwendig ist jetzt, alle unerwünschten Tags der Punkte wieder loszuwerden, damit sie nicht alle als POI (sofern in points vorhanden) gerendert werden. In Deinem Fall bei nur einem POI in der Mitte bei aerialway=cable_car wäre in der Datei “points” erstmal zu filtern:

aerialway=cable_car & mkgmap:line2poi=true & (mkgmap:line2poitype=start | mkgmap:line2poitype=end | mkgmap:line2poitype=inner ) {delete aerialway}

Desweiteren müssten alle mit --add-pois-to-lines erzeugten Zusatz-Tags gelöscht werden, für die es weitere globale Entsprechungen in der “lines” gibt oder geben könnte (wir wollen in deinem Beispiel ja nur aerialway=cable_car):

amenity & mkgmap:line2poi=true {delete amenity}
tourism & mkgmap:line2poi=true {delete tourism}
leisure & mkgmap:line2poi=true {delete leisure}
natural & mkgmap:line2poi=true {delete natural}
usw.

Vielleicht kennt ja jemand eine einfachere Lösung.

Viele Grüße aus 02681
Mario

Hallo Mario,

vielen Dank für diese Info, den Schalter kannte ich noch gar nicht.

Auch ich möchte gerne Symbole auf Linien setzen, und zwar für die max. Durchfahrtshöhe, die mit maxheight auf der Linie sitzt.

Die Auswertung sieht leider recht aufwändig aus, da man nicht vergessen darf, sämtliche unerwünschten TAGs wieder zu entfernen.
Wesentlich einfacher wäre da wohl ein etwas besser konfigurierbarer Schalter gewesen, etwa “–add-pois-to-lines=aerialway=;maxheight=

Walter

Hallo an ALLE,
erst mal Danke für die Hilfe und die vielen Infos dazu.
Ich sehe schon das das nicht ganz so einfach ist und das aerialway=cable_car war auch nur ein Beispiel.
Ich hab in der mkgmap Hilfe halt den Tag mit dem Schalter “–add-pois-to-lines” überlesen und war einfach nicht weitergekommen.
Das mit den filtern muss ich mir erst noch mal genau durcharbeiten, denn das scheint die Schwierigkeit an der Problematik zu sein und wird den größten Aufwand bedeuten.

@Walter, ja den Map_Composer kenne ich und habe auch bis jetzt damit gearbeitet aber leider treten immer größere Fehler bei der Erstellung der Polygone auf. Links Map_Composer rechts mit mkgmap gemacht, dabei verwende ich in beiden die selbe Ausgangsdatei und das selbe mkgmap 2109 und auch die gleiche TYP

Also noch mal Dank für die Infos und schönes WE noch, Jörg

@Walter:
Im Style-File lässt es sich halt einfacher, übersichtlicher und umfangreicher Filtern als in der CommandLine.

Das herausgefilter von allem anderen kann man auch ersetzen in dem man in jede andere Regel eine Prüfung einfügt, ob mkgmap:line2poi nicht vorhanden ist.
Bsp: amenity=parking & mkgmap:line2poi!=true […]
Im Filterteil musst du dann bei den POIs, die du haben willst und die aus Linien generiert worden sind das mkgmap:line2poi löschen.

Bsp: aerialway=cable_car & mkgmap:line2poitype=mid {delete mkgmap:line2poi}

Hallo Jörg,

der Fehler mit dem nur teilweise dargestellten Wald ist schon recht seltsam.
Leider ist es beim Composer nicht so leicht, einem Fehler auf die Spur zu kommen,
da man durch den Präprozessor das ganze nicht mehr so einfach nachvollziehen kann,
in welcher Stufe jetzt der Fehler entstanden ist.

Ich kann mich an einen Fall mit einem MultiPolygon erinnern, wo ich gemeinsam mit dem
zum Glück sehr hilfsbereiten Programmierer lange den Fehler bei mkgmap gesucht habe,
um ihn dann doch beim Composer zu finden.
Der Fehler war im Composer dann auch sehr rasch beseitigt.

Walter