Metatiles rendern

Hallo,

ich benutzte TrekBuddy auf meinem Handy und möchte dafür eine Karte aus den Rohdaten rendern. Diese kann ich dann mit MOBAC importieren und sie ins TrekBuddy Format konvertieren. Ich habe dies mit Postgresql osm2psql und mapnik geschafft. Allerdings werden dann immer Label von Straßen abgeschnitten und außerdem dauert das Rendern sehr lange. Deshalb möchte ich Metatiles rendern und diese dann wieder in einzelne Tiles splittn. Ich weiß allerdings nicht genau, wie ich das machen soll.

Ich hoffe jemand kann mir helfen.

Max96

Hi,

bezüglich der abgeschnittenen labels kann ich dir für mapnik folgenden Tipp geben:

In der osm.xml in den jeweiligen -Tags unter den Stilen () einfach minimum-padding=“Zahl” hinzufügen.

Beispiel aus meiner xml-Datei:

<Style name="roads-text-ref-low-zoom">
    <Rule>
      <Filter>[highway] = 'motorway' and [length] = 1</Filter>
      &maxscale_zoom10;
      &minscale_zoom12;
      <ShieldSymbolizer fontset-name="bold-fonts" minimum-padding="10" size="10" fill="#fff" placement="line" file="&symbols;/Bundesautobahn2.png" minimum-distance="30" spacing="750">[ref]</ShieldSymbolizer>
    </Rule>
    ...

Das Ganze kannst du dann auch auf anderen Elemente anwenden, die nicht am Rand der tiles abgeschnitten werden sollen.

Gruß
Andreas

Vielen dank für die Antwort. Erstellst du dann ganz normale Tiles? Das dauert bei mir sehr lange, deshalb wollte ich das Problem mit den Metatiles lösen.

Max96

Hi,

ja, ich erstelle mir immer ganz normale tiles, die ich dann mit MOBAC zu einem Atlas weiterverarbeite, um die Karte mit oruxmaps auf dem Smartphone zu nutzen.

Dass das Rendern teilweise lange dauert stört mich jetzt nicht so, da es ja nebenbei laufen kann.

Ne Ostwestfalen-Karte bis Zoomstufe 17 dauert auf meiner Maschine z.B. ne knappe Stunde…

Gruß
Andreas

Ok, dann werde ich das auch so machen. Danke für deine Hilfe.

Max96

EDIT: Was hast du für einen Prozessor in deinem PC? Bei mir dauert Zoomstufe 14 von Niederbayern schon 3 Stunden.

Max96

Waere es moeglich einen eigenen Tileserver mit mod_tile aufzusetzen? Der rendert dann die Daten als Metatiles und zerlegt sie wieder in einzelne tiles. Auf einem Ubuntu system laest sich das ganze sehr einfach installieren ( http://switch2osm.org/serving-tiles/building-a-tile-server-from-packages/ ) Und auch auf anderen Linux systemen sollte es relative leicht zu installieren sein.

Hi,

bei mir werkelt ein alter Phenom X4 Prozessor mit 2,3GHz und vier Kernen unter Ubuntu 12.04 x64, dazu 8 GB RAM.

Sorry, hab mich auch vertan…das Rendern der Zoomstufe 16 (nicht 17) dauert bei mir etwa ne Stunde…

Gruß
Andreas

Ich habe ein Fedora Linux 64bit System. Ich habe auch schon versucht einen Tileserver mit tirex und mod_tile aufzubauen, allerdings habe ich da einige Schwierigkeiten, weil die Pakete nicht in der Fedora Repository enthalten sind und bei kompillieren einige Fehler aufgetreten sind. Die meisten konnte ich zwar durch ändern des Programmcodes beheben, allerdings lässt sich tirex nicht starten, weil angeblich das modtile-socket fehlt.

Max96

Fedora scheint irgendwie mehr anders zu Ubuntu zu sein als ich erwartet haette. Demzufolge treten mehr Probleme damit auf als ich von einer Linux distribution zur anderen vermutet haette.

Wenn du die Kompilierfehler oder ander Bugs meldest, werde ich zu sehen das ich sie behebe.

Eigentlich sollte tirex das modtile-socket selbst anlegen. Allerdings muss man sicher stellen das es dazu die benoetigten permissions hat, und moeglicherweise muss man auch sicher stellen das das Verzeichniss in das tirex das socket anlegen will vorhanden ist.

ich hab das damals in /tmp erzeugen lassen - da darf ja jeder schreiben.

Gruß
walter

Naja, ich machs jetzt ganz normal mit dem Pythonskript. Aber das ist doch nicht normal, dass das bei mir so lange dauert oder?

Max96

Wie groß ist denn dein zu rendernder Ausschnitt?

Meine Stundenangabe (Zoom 16) bezieht sich auf ca. 1,6 Längengrade und ca. 0,5 Breitengrade…

Gruß
Andreas

Ich weiß nicht genau. Ich rendere komplett Niederbayern.

Max96

Moin,

dann schreib doch mal die Zeile mit deiner bbox aus generate_tiles hier rein.

Gruß
Andreas

Ok

bbox = (11.573, 48.195, 13.862, 49.176)

Max96

Hi,

na das sind dann ja ca. 2,3 Längengrade und ca. 1 Breitengrad.

Also schonmal ne ganze Menge mehr Fläche als bei mir zum Rendern…

Gruß
Andreas