Neue Version 0.85 von Map Composer

Hast Du eine allgemeinverständliche Formulierung dafür? Dann nehme ich sie gerne in die Anleitung auf.

bye
Nop

Wie wäre es mit einem Beispiel? Die spitzen Klammern sind ja ansonsten die übliche Nomenklatur.

Das war nicht bös gemeint… Sicher wäre aber das Muster welches Henning mir im Klartext gezeigt hat als Beispiel verständlicher. Evtl. auch kurz die Datei nennen in der die Ergänzung erfolgen muss (start.bat) würde bestimmt hilfreich für Einsteiger sein. Das sollte dann schon reichen denke ich.

Danke nochmals, jetzt geht es einwandfrei!
Frank

PS: Zusätzlich hatte ich auch noch wie bei den anderen *.jar aufrufen eine Semikolon als Trennung vor den -job gesetzt. Da konnte es wohl auf keinen Fall gehen.

Hallo,
ich versuche mich gerade in den Map Composer einzuarbeiten und habe einmal die Beispielkarte durchlaufen lassen. Leider wird für die Beispielkarte kein Garminkarte (zip) erzeugt.
Ich bekomme die Fehlermeldung:

Build the garmin maps
calling mkgmap
mkgmap call failed!
Generation finished

In der Datei Commands.log steht dann folgende Fehlermeldung:

rem Build the garmin maps

java -Xmx1100M -jar C:\Programme\OSM\MapComposer\Tools\mkgmap.jar --gmapsupp --family-name=OSMC Beispiel --family-id=79 --product-id=1 --description=“OSMC Beispielkarte” 79990001.img 79990002.img 79990000.TYP

Could not open file: Beispielkarte
Exception in thread “main” java.lang.NullPointerException
at uk.me.parabola.mkgmap.combiners.FileInfo.getFileInfo(FileInfo.java:136)
at uk.me.parabola.mkgmap.main.Main.endOptions(Main.java:369)
at uk.me.parabola.mkgmap.CommandArgsReader.readArgs(CommandArgsReader.java:124)
at uk.me.parabola.mkgmap.main.Main.main(Main.java:122)

Leider kann ich damit nichts anfangen.
Was mache ich falsch?

Für Hilfe wäre ich dankbar.

Grüße
surveyor54

Hi!

Das wird durch einen Fehler in mkgmap verursacht. Normalerweise sollte es die Anweisung --description=“OSMC Beispielkarte” verstehen, tut es aber neurdings nicht mehr.

Abhilfe:

  • Den Beispiel-Job in Map Composer öffnen
  • Auf den Reiter “Parameter” gehen
  • Das Leerzeichen in “OSMC Beispielkarte” entfernen, z.B. “OSMC_Beispielkarte”

Dann sollte es laufen.

bye
Nop

Hat funktioniert, danke für die Hilfe und Grüße

surveyor54

Hi,
ich hätte eine generelle Frage zur Funktionalität vom Map Composer (V.085).

Ich würde gerne eine Overlay erzeugen, welches ausschließlich die Routenmarkierungen incl. Wegsymbole enthält um dieses über eine Rastertopo zu legen. Wege als solche möchte ich nicht haben.
Leider gelingt es mir nicht Route_outlines(und/oder route_marker=marker_black etc.) zu erzeugen welche den Wegnamen des Ursprungsweges + Routensymboltext beinhalten(Bsp:STEINBRUCHSWEG [X22] [<5] [A1] [A3]).
Diese erhalte ich jedoch nur in Verbindung mit den “richtigen” Wegobjekten.

Nach etlichen Stunden der Probiererei vermute ich im Moment, ds dies mit dem Composer nicht geht.
Die Routenmarkierungsobjekte werden wohl in dem Datenaufbereitungsprozess erzeugt und eine Kopie des Namens ist nicht vorgesehen und kann später auch nicht mehr erzeugt werden.
Dies ist im Gesamtkonzept einer vollständigen Karte ja auch nicht notwendig, da die Namen ja in den eigentlichen Wegobjekten vorhanden sind.

Gibt es vielleicht doch eine Vorgehensweise wie ich mein obiges Anliegen(Marlierungslinie der Routen incl. der ursprünglichen Wegnamen) realisieren kann.?

Dank i.v für Tips oder auch ein klares No geht nicht.

Gruss
Gert

Hi!

Habe sowas noch nie probiert. Wegemarkierungen werden immer zusäztlich erzeugt, da kann man nichts dazutexten.

Was ich mal probieren würde, ist die Originalwege samt Text drin zu lassen, aber die Darstellung des Wegetyps optisch unsichtbar zu machen. Das sollte den gewünschten Effekt haben.

bye
Nop

Mit dem Composer fällt mir nur der Weg ein, transparente png’s für die Wege zu nutzen. Das ändert dann aber nichts an der Datenmenge.

Mit mkgmap geht zumindest das Rendern der Wege zu selektieren. Hier istanders als im Composer eine Verknüpfung von Relationen und Linien möglich (Vererbung). Hier wird man aber Problmem bei den Symbolen für die Wege haben. Da fällt mir gerade kein Weg ein.

Hallo NOP, Hallo Henning
danke für eure Tips, deren Inhalt mir aber leider schon bekannt ist.
Das transparentmachen für unerwünschte Objekte hatte ich erstmal verworfen.
Die Datenmengen sind für mich da einfach grenzwertig Gründe: altersschwacher Rechner (Pentium 4 2,6 GHZ 1GB RAM), und die IMG sind nur Zwischenprodukt um via MP in ein TwoNav taugliches MPVF-Format weiterverarbeitet zu werden.
Auf die Namensinformation würde ich ungern verzichten, auch wenn es letztlich die einfachste Lösung wäre.

Dann werde ich wohl doch mal schauen müssen, wie hoch der Aufwand wird um die Relationen via mkgmap rauszufiltern und diese dann im 2ten Schritt mit den via Composer erstellten Symbolen zu vereinen.
In mkgmap gibt es afaik keinen Weg Symbole entsprechend wie Composer es macht, zu generieren.

Trotzdem vielen Dank für eure Antworten
Gert

Hallo Gert
Ich bin mir nicht sicher, ob folgendes zum von Dir gewünschten Effekt führt:

  • In der Maske “Route-Eintrag” im Feld “Textmarkierung” eine von Dir gewählte Bezeichnung des Wanderweges eintragen.
  • für Textfarbe das leere Feld auswählen
    Dadurch wird der Text nicht mehr auf das Schildchen sondern als Name an den Weg geschrieben (so war es jedenfalls noch in Composer 0.84).
    Ist der Weg mit mehreren Routen verknüpft, werden alle Routennamen hintereinander an den Weg geschrieben und wenn dieser ein Name-Tag hat, steht dieser am Anfang des “Wurms”.

Die “Schildchen” sind dann allerdings ohne Text. (!!!)
Um dieses Manko auszugleichen, erstellte ich mir für einen überschaubaren Bereich Wanderwegsymbole mit Buchstaben und Zahlen. Auf diese Weise sehe ich nun beides auf der Karte: Die Schildchen mit Symbolen, Buchstaben und Zahlen und an den Wegen die mitlaufenden Routenbezeichnungen.

Für den Fall, daß es möglich ist, alle Wege ohne Wanderroutenrelation per Renderregel auszusieben, könnte man alle verbleibenden “Routen-Wege” ohne Unterschied mit einer 1Pixellinie darstellen lassen. Wählt man dafür dieselbe Farbe, wie für die Wanderwegmarkierung, verschwindet sie optisch darin und die Nutzung einer transparenten Weg-Grafik wäre überflüssig.

Viele Grüße
tippeltappel

Mir fällt gerade noch folgendes ein:

Im Output-Ordner des Composers ist der mkgmap-Style Ordner. Hier erzeuge eine neue Datei mit dem Namen: relations

In diese Datei schreibst du folgende Regel:

( route=hiking | route=foot ) { apply { set foo=bar } }

Im Composer musst du nun gründlich Aufräumen. Alle Regeln weg außer denen, die du für die Symbole etc. benötigst. Anschließend erstellst du dir eine Transparente png-Grafik mit 32*1px udn erzeugst daraus ein Weg-Kartenobjekt und damit eine Renderregel für foo=bar.

Ich hoffe mal, dass der Composer die relations-Datei nicht löscht. Allerdings wird der Composer immer noch alle Daten verarbeiten, in der Karte tauchen sie dann aber nicht emhr auf.

@Nop: Wie bekommst du denn die Symbole auf die Wege? Fügst du da Nodes für ein?

Ja.

Ja, das hatte ich dann irgendwann per trial und error auch schon herausgefunden.

Hm, das war bei mir nicht der Fall. Ist aber auch nicht das ,was ich erreichen möchte.
Ich möchte ja die Namen der Wege( und NICHT die Langbezeichnung der Route) + die Textmarkierung s.o.

Das war mir aufgefallen, ist mir in dem Fall aber egal.
Allerdings kann man die auch wiederbekommen, wenn man zu den Routen Einträge vom Typ “route_text” erzeugt. Wenn diese auf einen Labeltyp (0x2800)verweisen erhält das Symbolobjekt ein Label!!!. Es wird dann kein Extraobjekt erzeugt.

Sie wird nicht gelöscht allerdings anscheinend auch anderweitig völlig ignoriert.
So wie ich das im Moment sehe ist das wesentliche der Verarbeitung mit der Aufbereitung der Input-Daten erledigt.
Hiernach ist z.B. die Textmarkierung ins Namensfeld des Weges(nicht Route) übernommen.
Die Styles werden dann nur noch für die Erstellung der Garmin-Karte benötigt.

Im Moment sehe ich nur folgenden Weg:

  • Input-Datei vorbereiten durch externe Hinzufügung eines Tags zu jedem Weg, der Bestandteil einer Route ist
    So lassen sich diese Wege dann einfach identifizieren und das Erstellen der Routenmarkierung kann entfallen.
    Es übersteigt meine Fähigkeiten mit akzeptablen Aufwand eine Skript zu schreiben,
    welches dieses bewerkstelligt.
    Nachteil ist auch, das die Inputdatei weiter aufgebläht würde.
  • Diese Datei dann mit Composer verarbeiten

Nochmals Danke für eure Ideen
Gert

Sagte ich ja, dass der Composer wieterhin alle Daten verarbeitet, aber mkgmap schriebt nurnoch die Wege in die img-Dateien, die auch einer Relation angehören.

Aber nur wenn mkgmap dies erkennen kann.
in der …data.osm sind Weg+Route schon aufbereitet und das relations-file wird offensichtlich nicht beachtet.
Also kommt das Tag nicht zum Weg (Ich sehe da aktuell auch keinen einfachen Weg noch ein Tag reinzubekommen.) ergo kann mkgmap nicht erkennen welcher Weg nun rauszusuchen ist.
Wenn das wenigstens ginge könnte die weitere Verarbeitung ja manuel mit mkgmap erfolgen.

Was geht ist die …data.osm +…routes.osm wieder zusammenzuschreiben und dann manuell mit mkgmap weitermachen. Dort kann man dann via relations ein tag zufügen und nur diese rausschreiben.
Im Moment habe ich noch keine Vorstellung wie ich das Zusammenfügen bei größeren Datenmengen am besten mache.

Gruss
Gert

Stimmt, daran hab ich nicht gedacht :frowning:

Dann braucht man wohl doch einen Filter, der Relationen analysiert, den Memberwegen ein Tagg spendiert und dann diese Wege, die betreffenden Nodes und die Relationen in eine osm-Datei schreibt. Mit der kann man dann den Composer füttern.

Composer macht die Analyse ja doch schon, es müsste “lediglich” bei Bedarf ein Tag an die Memberwege anfügen und eine dies entsprechend auswertende Regel in die styles übernommen werden

Gruss Gert

Mal ganz anders herum gedacht -
(Die folgende Idee funktioniert allerdings vermutlich nur mit überschaubaren Regionen.)
In JOSM gibt es mächtige Filterfunktionen.
Damit ist es möglich, ein Extrakt von allen Wegen zu erstellen, die Mitglied einer Routenrelation sind.
Hat man alle Member einer Routenrelation isoliert, kann man diesen Wegen in einem Rutsch ein beliebiges zusätzliches Tag verpassen.
Sammelt man die Extrakte mehrerer Downloads in einer lokalen Datei auf dem PC, erhält man eine Datei, die sich mit Composer verarbeiten läßt.

Gruß
tippeltappel

Damals hatte sich Nop gegen jegliche Vererbungsmöglichkeit von Realtionen auf andere Objekte gesperrt, weil es zu Problemen führen kann wenn man nicht genau weiß, was man tut…

@Tippeltappel…das sollte man tunlichst vermeiden. Das belastet die API nur unnötig.