poland.osm.pbf wo ist der Fehlerteufel versteckt (Map_Composer)

Hallo,
also ich verarbeite das poland.osm.pbf von der Geofabrik mit Map_Composer und jetzt geht das plötzlich nicht mehr.
Die letzte Kartenerstellung war mit dem poland.osm.pbf vom 17.04.2011 das ging ohne Probleme aber seit 03.07.2011 probiere ich vergebens eine neue Karte zu erstellen.
Beim erstellen der Garmin Kacheln erscheint immer eine Kachel mit 0Byte, das hat zur Folge das auch keine *.tdb erstellt wird.
Hab auch versucht den PL Bereich aus der europe.osm.pbf zu nehmen selber Effekt.
Alle anderen Karten gehen aber, also CZ, D und auch mein Ausschnitt aus der europe.osm.pbf der das Grenzgebiet CZ-PL-D abdeckt.
Deshalb schließe, ich mal ein Fehler im Map_Composer aus.
Unten hänge ich mal den Schluss der commands.log aus dem Datenverzeichnis vom Map_Composer an. Da mein Englisch ja gegen Null tendiert kann mir eventuell jemand sagen was den Fehler verursacht.
Gruß und Danke AlterSachse

java -Xmx2500M -jar F:\01 map_composer\Tools\mkgmap.jar --tdbfile --preserve-element-order --route --remove-short-arcs -c F:\02 Geofabrik_OSM\data\osmc_options

uk.me.parabola.imgfmt.MapFailedException: There is not enough room in a single garmin map for all the input data
The .osm file should be split into smaller pieces first.
at uk.me.parabola.imgfmt.app.BufferedImgFileWriter.ensureSize(BufferedImgFileWriter.java:192)
at uk.me.parabola.imgfmt.app.BufferedImgFileWriter.put(BufferedImgFileWriter.java:160)
at uk.me.parabola.imgfmt.app.trergn.Polyline.write(Polyline.java:148)
at uk.me.parabola.imgfmt.app.trergn.RGNFile.addMapObject(RGNFile.java:140)
at uk.me.parabola.imgfmt.app.map.Map.addMapObject(Map.java:241)
at uk.me.parabola.mkgmap.build.MapBuilder$ShapeAddFilter.doFilter(MapBuilder.java:1074)
at uk.me.parabola.mkgmap.build.LayerFilterChain.doFilter(LayerFilterChain.java:57)
at uk.me.parabola.mkgmap.filters.RemoveEmpty.doFilter(RemoveEmpty.java:61)
at uk.me.parabola.mkgmap.build.LayerFilterChain.doFilter(LayerFilterChain.java:57)
at uk.me.parabola.mkgmap.filters.PolygonSplitterFilter.doFilter(PolygonSplitterFilter.java:57)
at uk.me.parabola.mkgmap.build.LayerFilterChain.doFilter(LayerFilterChain.java:57)
at uk.me.parabola.mkgmap.build.LayerFilterChain.startFilter(LayerFilterChain.java:75)
at uk.me.parabola.mkgmap.build.MapBuilder.processShapes(MapBuilder.java:943)
at uk.me.parabola.mkgmap.build.MapBuilder.makeSubdivision(MapBuilder.java:650)
at uk.me.parabola.mkgmap.build.MapBuilder.makeMapAreas(MapBuilder.java:584)
at uk.me.parabola.mkgmap.build.MapBuilder.makeMap(MapBuilder.java:195)
at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:97)
at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:61)
at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:220)
at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:217)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exiting - if you want to carry on regardless, use the --keep-going option

rem Creating TYP file
F:\01 map_composer\Tools\cgpsmapper.exe typ 90220000.txt F:\01 map_composer\garmin\90220000.TYP

Du musst einmal deine Kacheln neu berechnen lassen bzw. die Grenzen dafür nach unten setzen. Mindestens eine Kachel ist mit den neuen Daten zu groß.

Sagt doch aber auch die Fehlermeldung: There is not enough room in a single garmin map for all the input data

Kenne das Problem von meiner Karte (Region Oberfranken-Sachsen-Tschechien). Evtl. bringt’s was, die Einstellung in “Maximale Objekte/Kachel” zu ändern. Mein Job läuft mit “2000” gut durch.

Allerdings musste ich zusätzlich meinen Kartenbereich in Region West und Ost trennen. Ansonsten gab’s auch noch Darstellungsprobleme (fehlende Polygone und Wege).

Selbst mit dieser Konfiguration werden manche POIs nicht dargestellt (bei kleineren Ausschnitten dann doch).

Gruß, softcake

Edit: Bitte posten, ob’s geklappt hat. Befinde mich bezüglich dieser Art Probleme auch noch in einer Lernphase (siehe Frage an die Map_Composer-Gurus)

Eventuell reicht es auch schon, das Häkchen “Layout neu berechnen” einzuschalten, falls es aus ist. Ansonsten den Maximalwert für Objekte/Kachel reduzieren bis es paßt.

bye
Nop

Danke
Erst mal Dank an alle, das mit der Größe hätte ich nie gefunden :frowning:
Wie gesagt mein Englisch geht gegen Null und das ist dann auch immer mein Handicap wenn was nicht richtig geht und solche Fehlermeldungen kommen.

So da “Daten verarbeiten” auf Immer stand konnte es nur noch die Kachelgröße sein deshalb dort schnell mal 1000 eingetragen und siehe da der Durchlauf war von Erfolg gekrönt.

Problem gelöst, also Danke an alle für die Tipps.
Gibt es eventuell einen Wert wie groß so eine Garmin *img werden darf/kann, meine größte ist in der Deutschland Karte 25,4MB bei Kachelgröße 2000 was ja als Standard im Map_Composer eingestellt ist.

Gruß und Danke AlterSachse

Leider nein. Der splitter von mkgmap verwendet irgendeine Näherung, Composer eine andere. Leider konnte ich auf der mkgmap Mailingliste nie jemand dafür gewinnen, konkrete Auskünfte zu geben. :frowning:

bye
Nop

Aus meiner Sicht kein böser Wille. Soweit ich weiß ist die Grenze schlicht und ergreifend nicht genau bekannt bzw. ein Produkt aus vielen unterschiedlichen Parametern (Anzahl Nodes, Anzahl Ways etc.).

WanMil

Ahh, ok also hilft da wirklich nur probieren.

@Nop ist es eventuell möglich das die Fehlermeldung aus der commands.log in der Map_Composer Log ausgegeben werden könnte. Ich hab recht lang gebraucht ehe ich überhaupt diese Fehlermeldung gefunden hatte. Der Map_Composer bringt ja keine offensichtliche Fehlermeldung sondern zum Ende nur das er “Fertig” ist.

Gruß AlterSachse

Du warst auch wirklich nicht gemeint - Du bist der einzige, der sich um Fragen zu Problemen kümmert.

Ich habe mich öfters mit Fragen an die mkgmap Liste gewandt - aber entweder gibt es niemanden, der die Antworten kennt (was komsich wäre denn irgendjemand hat es ja programmiert) oder diejenigen sind nicht Willens zu antworten. Eine andere ewig ungeklärte Frage ist: Wie muß ein File geschnitten werden, damit mkgmap das Routing über Kachelgrenzen erlaubt. War nie eine Antwort zu kriegen…

Du hast ja mal mit auf den Fehler mit “area too small” geschaut (und da müssen wir bei Gelegenheit noch weitermachen). Das war aber nicht meine erste Anfrage dazu, und obwohl das ein übler Fehler in mkgmap ist, gab’s vorher keine informierte Antwort. :frowning:

bye
Nop

Die Frage nach dem Routing kann wirklich niemand (zumindest von der mkgmap Liste) beantworten, da wir es schlicht und ergreifend nicht wissen.

Das hat übrigens nichts mit dem Zuschnitt der Tiles zu tun. Entweder wir verstehen da noch etwas falsch an der Routingsektion im Fileformat von Garmin oder es gibt noch einen Bug in mkgmap, der der Problem erzeugt. Wir wissen es nicht.

WanMil

Der Splitter von mkgmap oder mkgmap schneidet die Daten so, daß Routing über Kachelgrenzen funktioniert. Das ist doch kein Zufall, irgendjemand hat das so hinprogrammiert und muß wissen was er gemacht hat. :slight_smile:

bye
Nop

Hallo Nop

Das ist jetzt aber mit dem groben Rechen gesagt (von euch beiden).

Natürlich kennen die mkgmap-Entwickler im wesentlichen die Anforderungen fürs Routing bei Garmin-Karten. Schließlich funktioniert das Routing ja in 90-99% aller Fälle. Allerdings kennen sie die letzten Feinheiten eben doch noch nicht. Und wie immer ist das letzte Prozent also sehr viele spezielle Kombinationen, bei denen es doch nicht funktioniert, herauszufinden besonders schwierig. Vor allem dürfte es besonders schwierig sein, zu erkennen, welche Faktoren dazugehören und welche nicht. Letztlich können natürlich auch Fehler in den OSM-Daten dazu führen, dass das Routing mal nicht klappt.

Edbert (EvanE)

Wir scheinen aneinander vorbeizureden. Es gibt zwei Punkte:

  1. Der Splitter teilt einen großen Dump in kleinere Tiles. Dabei gibt es eine Überlappungszone (Default 2000 map units => ~0.04°) zwischen den Tiles. Ohne diese Zone würde eine Straße vor einer Tilegrenze enden, da der nächste Punkt ja bereits in dem anderen Tile liegt. Das führt zu Löchern in der Straße und da kann das Beste Routing nix machen.
    Des weiteren schreibt der Splitter in die erzeugten Tiles die überlappungsfreie Bounding Box des Tiles (mit bound oder bounds XML node. Bin grad nicht sicher, welcher von beiden). Dies ist auch wichtig, damit mkgmap bei einer Straße die Schnittpunkte mit der Kachelgrenze errechnen kann und damit bei angrenzenden Tiles auch derselben Schnittpunkt heraus kommt.

  2. Es gibt beim Routing mit MapSource (und wahrscheinlich auch auf den Geräten selber) häufiger Probleme, wenn man eine Route berechnen möchte, die über mehrere Tiles verläuft. Manchmal funktioniert dies nicht, obwohl die Daten dies eigentlich zulassen müssten. Dies ist das, worauf ich mich bezogen habe. Es könnte ein Formatproblem der Garmin Files sein oder noch ein Bug in mkgmap.

WanMil