Neue Version 0.82 von OSM Composer

Allgemein betrachtet hast du natürlich Recht. Spielt hier aber keine Rolle, da der Composer diese Daten weiterverarbeiten kann. Ersetzung mit Hilfe von enthält/enthält nicht/vorhanden/fehlt. Der Composer ist ja der Renderer, den ich steuere. Der Nutzer weiß, welche TAG’s er mit der Regel erhält und kann diese dann weiterverarbeiten. Man muss die Ersetzungsregel halt sinnvoll erstellen und gegebenenfalls mehrere TAG’s überprüfen lassen.

Das muss ein Datenfehler sein oder ein Fehler in der Ersetzungsregel.

Ich gebe aber zu, dass das ganze dann nicht so einfach gestaltbar ist, dass es für jeden sofort ersichtlich ist.

Oder unterschiedliche Erwartungshaltungen, ob und wie die Tags vererbt werden. Jede für sich allein betrachtet korrekt, insgesamt gesehen völliger Unfug. :slight_smile:

Entweder es ist etwas erlaubt bzw. vorhanden oder nicht. Beides geht einfach nicht (zumindest fällt mir kein Bsp. ein)

Hallo
versuche seit Tagen erfolglos mit dem OSM Composer eine Garmin- und Mapsource-Karte zu erstellen. Bleibe leider immer beim mkgmap hängen (siehe Meldung unten). Auch “manuelle” Versuche mittels Aufruf des mkgmap aus der CMD-Line schlagen fehl. Hat jemand eine Idee woran es liegen kann, bzw. wo ich nach einer Lösung suchen könnte.

Mein System: Windows 7 (32), Java 6 (1.6), mkgmap-r1626
Dank und Gruss
Tölle

Extract aus dem “commands-file”

rem Build the garmin maps

java -Xmx1100M -jar C:\Users\Werni\OSM-Garmin\OSM-Composer\Tools\mkgmap-r1626\mkgmap.jar --tdbfile --preserve-element-order --route --remove-short-arcs -c C:\Users\Werni\OSM-Garmin\OSM-Composer\data\osmc_options

SCHWERWIEGEND (GType): C:\Users\Werni\OSM-Garmin\OSM-Composer\data\RundumBasel_00072_0473_4_4_garmin.osm: not numeric 0x0x5900
SCHWERWIEGEND (GType): C:\Users\Werni\OSM-Garmin\OSM-Composer\data\RundumBasel_00076_0473_4_4_garmin.osm: not numeric 0x0x5900
non-numeric type in map-features file

Hallo Henning,

die Idee finde ich grundsätzlich interessant, aber ohne konkretes Beispiel schwer nachvollziehbar.
Ich kenne mich mit Relationen noch zu wenig aus, aber wenn du mal etwas reales beschreiben könntest, wäre es etwas einfacher.
Vielleicht könnte man damit ja auch solche Probleme wie einen unsichtbaren MP-See lösen.

Hallo Nop,

schade, dass es mit der Überlappung nicht so funktioniert, wie ich dachte.
Ich beobachte immer wieder im Plan ganz feine Trennungslinien, über die das Routing nicht funktioniert.
Fahre ich dann nur wenige 100m weiter, geht es wieder bis zur nächsten Linie.
Ich mache aber auch noch viele andere Fehler: Routing gegen Einbahnen, durch Fußgängerzonen, …
Da fehlen vermutlich noch einige Ersetzungen, um das in den Griff zu bekommen.

Walter

Hallo Walter
Das durchreichen der Tags bedarf sicher nichts konkretem. Hier geht es um associatedStreet (für Adressen) und restrictions (fürs Routing)
Bei den Ersetzungen dachte ich primär an routen-Relationen und Relationen die Zusammengehörigkeiten ausdrücken. Bei den Routen denke ich bspw. an eine bevorzugung von bestimmten Strecken, wenn sie zu einer bestimmten Route gehören. Um ganz konkret zu werden. wenn der Weg zu rcn, ncn, lcn und icn gehört, würde ich ihn gerne beim Routing bevorzugen. Damit könnte man aber auch ein Routing nur auf Busstrecken realisieren (quasi ein ÖPNV-Routing).
Bei Zusammenghörigkeiten geht es mir um den Fall, dass man bspw. den Schulhof hat, darauf ein Schulgebäude, eine Turnhalle, … . Kann aber auch ein Zeltplatz sein, oder ein Sportplatz. Nun setzt es sich wohl langsam durch, an den eigentlichen Flächen nur noch die nötigsten Tags setzt und Tags, die alle Objekte betreffen werden in einer Relation getaggt. Bspw. den Namen der Schule/Campingplatz/… die Adresse.
Das kann man derzeit nicht mit dem Composer auswerten.

Ob man damit auch Multipolygone reparieren kann ich nicht sagen. Ich denke, hier sollte man eher bei mkgmap in der Mailingliste mal fragen, woran es liegt.

Schau mal in die Liste “Kartenobjekte”. Du hast vermutlich an einem Objekt die ID 0x59 stehen (wie früher üblich), ab V0.82 wird der Vorsatz “0x” nicht mehr verwendet. Eigentlich stellt Composer die Daten selbstständig um.

Hast Du neu installiert, etwas an den Objekten geändert oder eine alte Version upgedated? Falls ja wie?

bye
Nop

Geht nicht - hab ich schon versucht. Du kriegst bestenfalls gezackte Teilsegmente hin, aber nicht die Gesamtfläche. :frowning:

Genau. das sind die Kachelgrenzen.

bye
Nop

Ich bekomme seit dieser Woche beim Composer-Lauf eine Fehlermeldung, deren Ursache ich mir nicht erklären kann.

Sorting region Wien
processed 691271nodes, 134306 ways, 775 relations
Generating style in Q:\OSM_Composer\data\mapstyle
java.lang.IllegalArgumentException: illegal external record modification: No previous version. Readonly?
Generation finished

Die Generierung wird daraufhin abgebrochen, es wird kein Output-File erzeugt.
Ich habe es bereits mit verschiedenen Regionen und unterschiedlichen Einstellung versucht, immer das gleiche Ergebnis.
Woran könnte das liegen?

Walter

Hallo Walter,
hast du es mal mit dem löschen aller Daten im input und data-Verzeichnis probiert?

Hallo Henning,

vielen Dank für den Tipp, ich konnte den Fehler nun finden.
Das File mapstyle\lines wurde mit Größe 0 angelegt, also war der Fehler bei den Renderregeln der Wege zu suchen.
Der Composer färbt die fraglichen Zeilen zum Glück ohnehin rot ein, nur die Meldung ist halt meist etwas verwirrend.

Walter

Ich habe wieder eine Fehlermeldung, die ich nicht interpretieren kann.
Wenn ich die Polylinie 0x36 verwende, kommt die Meldung “Rendering rule for ignored tag name=value”.
Wann bekomme ich denn diese Meldung und was bedeutet sie?

Walter

Schau mal in die Liste der ignorierten Tags, ob dort zufällig name drin steht. Wenn du dies ignorieren willst, dann musst du wohl auch alle Renderregeln, die name auswerten löschen/deaktivieren.

Dies wäre zumindest meine Interpretation.

Genauso ist es. Wenn Du eine Renderregel hat, aber das Tag pauschal ignorierst, wird sie natürlich nie ausgeführt. Vor diesem Fehler will Dich Composer bewahren. Entweder Regel abschalten oder Ignorierfilter rausnehmen.

bye
Nop

Danke, genau das war’s. Manchmal ist die Lösung eben zu einfach.

Kann eigentlich irgendjemand das Problem mit dem Multi-Polygon See verifizieren, oder tritt das nur bei mir auf.
Das gleiche Problem habe ich auch bei Gebäuden mit Innenhöfen bzw. bei allen anderen Flächen, die als MP gemappt sind.

Walter

Wegen den Multipolygonen weiß ich nciht, was du meinst. Kannst du mal einen Screenshot der Karte machen, wo man das Problem erkennt. Und die groben Koordinaten. Dann lass ich das Gebiet am Wochenende mal durchlaufen.

Bisher sind mir noch keine Multipolygon-Probleme aufgefallen.

Hallo Henning,

es geht um den Neusiedlersee: http://www.openstreetmap.org/?lat=47.9028&lon=16.8067&zoom=13&layers=B000FTF
Seit er auf ein MP geändert wurde, ist er bei meiner Karte einfach weg.
Leute die mkgmap ohne den Composer verwenden behaupten, dass sie keine Probleme mit MP haben.
Hier die ganze Story: http://forum.openstreetmap.org/viewtopic.php?id=6487
Vielen Dank mal für dein Angebot, laut Nop liegt es auch nicht am Composer, also muss es wohl an meinen Parametern liegen.

Das MP-Gebäude, das ich letzte Woche gefunden habe, liegt in Moravsky Krumlov: http://www.openstreetmap.org/?lat=49.049124&lon=16.307746&zoom=18&layers=B000FTF
Auch das ist am Plan einfach unsichtbar.

Walter

Hallo Nop,

ich erstelle mehrere Karten mit der gleichen KartenID und unterschiedlicher ProduktID.
Damit kann ich alle Karten mit der gleichen Codepage (z.B. 1250) zusammenfassen und am Gerät auch gemeinsam aktivieren.
Der Kartenname ist dabei immer gleich, am Gerät wird zusätzlich noch die Beschreibung als Untername aufgelistet.
Falls du beim generieren des Filenames für das Zip-File die Beschreibung oder die ProduktID ergänzen kannst, wäre das Super.
Derzeit werden beim Generieren mehrerer Karten mit unterschiedlicher ProduktID immer die vorigen überschrieben.

Hallo Henning,

du hast doch mal versucht, Plätze als Fläche anzuzeigen.
Ich habe jetzt eine Ersetzung definiert, scheitere aber leider noch.

Bedingung: highway=pedestrian & area=yes
Aktion - Tag setzen: highway=platz

Eine Renderregel zeigt dann highway=platz als graue Fläche an (dünkler als die Fläche einer Ortschaft, sonst wäre es nicht sichtbar).
Irgendwo steckt da noch ein Fehler, denn die Plätze werden mir nicht gerendert.
Bist du schon erfolgreich mit deinem Versuch?

Wie sieht es eigentlich mit den Meerespolynomen aus, hast du da schon erste Erfolge?
Ich komme derzeit nicht einmal beim unsichtbaren Multipolygon-See so recht weiter.
Dafür kann ich mit dem neuen Composer bereits richtig große Pläne erzeugen.
Ganz Europa geht zwar noch nicht, aber stückeln ist ja auch kein Problem.

Bezüglich Routing über Kachelgrenzen habe ich das Gefühl, dass der Composer einfach zu sauber schneidet.
mkgmap erwartet einen unsauberen, ausgefransten und teilweise überlappenden Schnitt.
Mit einem exakt sauberen Schnitt kommt mkgmap nicht zurecht, da er keine Überlappungsbereiche findet.
Die Frage ist nur, wie man mit dem Composer einen überlappenden Schnitt simulieren soll, wenn er doch den Schnitt aufs Pixel exakt ansetzt.
Vielleicht hat hier irgendjemand eine tolle Idee dazu.

Walter

Hallo Nop, Hallo Walter,
Fangen wir mal mit Nop an. Mir ist am Wochenende aufgefallen, dass die Beschreibung des Nodecaches (Job-Einstellseite - Parameter) nicht mehr zu Version 0.82 passt. Wenn ich diese auf 0 setze, kommen nur noch Fehler, dass Nodes nicht gefunden wurde. Sprich auch im RAM-Betrieb ist der Parameter nicht egal.

So nun zu Walter. Meine Ersetzungsregel sieht ähnlich aus. Allerdings hab ich unter Aktionen Tag austauschen genommen. Ein weiteres Problem könnte auch noch sein, dass du eine Renderregel bei den Wegen hast, die highway=platz schon wegfängt. Der Composer rendert nach meinen Erfahrungen die Wege vor den Flächen. Dann hab ich noch die Reihenfolge beim Kartenobjekt auf 5 stehen.

Mit --generate-sea=extend-sea-sectors habe ich gute Erfahrungen gemacht. Jedoch kommt es manchmal zu einer überfluteten Kachel. Im Composer hab ich eine Renderregel für natural=coastline erstellt, damit der composer diese durchschickt.

@Nop: Hier wäre es schön, wenn man beim durchreichen auch key-value-Kombinationen angeben könnte, sodass nur natural=coastline durchgereicht wird, natural=xyz aber nicht

Bezüglich den Kacheln: Ich hab mich mit der Problematik noch nicht näher beschäftigt, aber ein einfaches offset von x pixeln wird wohl nicht reichen, oder?

EDIT:
Den Neusiedler See gibt es bei mir auch nur in ausgetrocknet…Hast du das schonmal auf der mkgmap-Mailingliste angesprochen oder dir die Gegend mit einer anderen Karte angeschaut?

Hi!

Ich glaub das hab ich schon längere Zeit versprochen, oder :slight_smile:

Hab zumindest da noch einen Punkt auf der Todo-Liste, von dem ich vergessen habe, was er bedeutet. :slight_smile:

Bau ich ein.

       Nop