Tiles@tHome unter Windows mit lokaler *.osm

Hallo an alle Tekkis! Ich häng hier schon seit Tagen vor der Kiste und raufe mir die Haare.:frowning: Es muss doch möglich sein, mit einem simplen Script Tiles@Home dazu zu bewegen, aus einem lokalen .osm-File lokale Tilesets zu erstellen, das auch noch und vor allem unter Windows funktioniert! Ja…, das Wiki habe ich bereits rauf- und runtergelesen und das OSM-Buch sagt hierüber auch nicht sehr viel. Über brauchbare Tipps (keine Mutmaßungen!) würde ich mich sehr freuen. FTM (Free The Map) und Gruß an alle pimapper (Carsten M.)

Nunja, was sind denn brauchbare Tipps? Ich selber kann zu T@H unter Windows nicht viel sagen, ich nutze tagtäglich und auch für T@H grundsätzlich Linux, habe aber auch noch nicht versucht, eigene OSM-Files rendern zu lassen. Leider schreibst du nicht, was du genau damit machen möchtest, so dass ich natürlich nicht weiß, was für dich in Frage kommt, aber prinzipiell fallen mir mal zwei Möglichkeiten ein: Wenn T@H unter Windows Probleme macht, dann könntest du dein Glück vielleicht noch einmal in einem virtualisiertem Linux z.B. unter VirtualBox versuchen. Wie viel einfacher es da ist, lokale OSM-Files zu rendern, kann ich nicht einschätzen, da ich auch nicht weiß, worans genau bei dir hängt. Alternativ, und falls es nicht unbedingt T@H sein muss, bietet sich vielleicht ein Rendering mit Kosmos an. Das ist eine Stand-Alone-Anwendung für Windows, die angeblich deutlich einfacher und intuitiver zu bedienen sein soll. Ich selber hab das aber noch nicht getestet. Anscheinend muss man jedoch bei den gerenderten Features unter Umständen Abstriche machen. http://wiki.openstreetmap.org/index.php/Kosmos gruß

Kosmos funktioniert gut unter Windows. Ich habe es ausprobiert. Aber ich würde auch gerne mit dem Tiles@Home-Algorithmus lokal rendern, damit ich sofort prüfen kann, wie es bei Osmarender am Ende aussieht. Sonst muss man immer so ewig warten, bis es auf dem Server gerendert wurde und nochmal so lange, bis eine eventuelle Korrektur “oben” ist. Passieren kann ja so einiges: Layer falsch gesetzt, Punkt nicht sauber verbunden, Fläche falsch getyped, … Ich habe auch irgendwo mal was gesehen, wo man sich so ein Tiles-Zeug runterladen kann (vornehmlich für Sourcecode), aber ich muss zugeben, dass ich da nicht durchgesehen habe und für Windows nicht wirklich was gefunden habe. Also wenn da noch ein Tipp käme, wäre ich auch interessiert. Kristian

Zu Tiles@Home kann ich nichts sagen, aber Merkaartor rendert die aktuellen Daten auch ganz nett. Zumindest besser als nix, IMHO.

Hallo, und vielen Dank für die ordentliche Response. @krza: Um mal eben zu schauen, wie die osm-Daten in png aussehen, brauchst du einfach nur die osm-Datei durch einen XSLT-Prozessor (z.B. XMLStarlet) zu jagen und dir das Resultat mittels Inkscape anschauen. Wie das geht, steht im Wike unter Osmarender. @all: Kosmos, Mapnik, usw. sind zwar auch schöne Renderer, jedoch denke ich, dass das Prinzip hinter Osmarender derzeit das charmanteste ist. Hab’s vor kurzem auch mal mit UMN-Mapserver versucht, dem eigentlichen König unter den Mapservern. Nur irgendwie scheinen OSM und UMN-Mapserver derzeit noch keine wirklichen Freunde zu sein. Linux, obwohl mir aus beruflichen Gründen durchaus nicht fremd, ist für mich keine Lösung. Ein Rendering unter VPC, VMWare oder einer anderen Box wäre zudem grottig langsam. Natürlich ist Linux, genau wie OSM, OpenSource - Trotzdem finde ich es hier sehr schade, dass 90% der Wikis kaum auf Windows eingehen und einige wichtige OSM-Tools erst gar nicht damit funktionieren. Zurück zu meinem Anliegen (aus’m OSM lokale TileSets erstellen) Mir schwebt vor, eine OSM-Datei (wie auch immer diese zustande gekommen ist) durch ein Programm ala tilesGen.pl (aus’m t@h) zu jagen und dieses erzeugt mir dann nach dem bekannten Muster die Tiles. Der Haken an der Sache ist wahrscheinlich, dass die Bounding-Box vorher bekannt sein muss. Dies liesse sich jedoch nach einmaligem Parsen eines OSM-Files ermitteln. LG Carsten

Naja, da wäre wir wieder bei der Transparenz der Wiki :wink: Falls Du zufällig einen zielgerichteteren Link hättest, wäre ich Dir dankbar :wink: Ich habe mich da nämlich irgendwann schon mal erfolglos durchgegraben. Edit: Moment … habe noch eine Seite gefunden … war wohl auch irgendwie falsch. Sieht besser aus. Gucke ich grad mal durch. Edit 2: Naja, habe es gefunden (http://wiki.openstreetmap.org/index.php/Osmarender/Howto) und es mal mit nxslt probieren wollen, aber wie so oft sind die Angaben nicht vollständig, und es hat nicht geklappt. Habe es dort mal auf die discussion-Seite gestellt.

Vergiss nxslt (DotNet) oder msxsl. Die haben Probleme mit den Namespaces, welche scheinbar nicht ganz korrekt sind. Besser macht sich da XMLStarlet. Ist einfach zu installieren und funktioniert.

Kann schon sein und hatte ich als nächstes probieren wollen, aber auch da fehlt jeder Hinweis darauf, wie man die *.osm-Datei dort eingebunden bekommt. Das Ding weiß das doch nicht von alleine, also irgendwas muss ich übersehen haben :wink: Naja, gute Nacht erstmal.

Hallo Carsten, genau dasselbe Problem hatte ich vor einiger Zeit auch! Meine Lösung: Ich habe das Script “orp.pl” von http://wiki.openstreetmap.org/index.php/Osmarender/orp umgeschrieben, damit es aus einer lokalen .osm-Datei PNG-Kacheln generiert. Die Voraussetzungen sind relativ wenige: - Mein modifiziertes “orp.pl” Script :wink: - Perl mit den Modulen, die auf der oben genannten Seite angegeben sind (libxml-perl libxml-xpath-perl libset-object-perl libxml-writer-perl) - die “osm-map-features-z*.xml” Dateien für die jeweilige Zoom-Stufe - Inkscape ab Version 0.46 Das Script ist zwar ein Quick’nDirty-Hack von mir, funktioniert aber und macht was es soll. Wenn Du mir Deine EMail-Adresse zukommen lässt, kann ich Dir das Script gerne mailen. Schöne Grüße PA94

Moin PA5E, kleine Nachfrage von meiner Seite: In welcher Weise hast Du das Script modifiziert? Es liest sich dort erstmal so, als wären für den lokalen Betrieb keine Änderungen nötig. Braucht man kein xmlstarlet? Den Abschnitt “Using with Tiles@home” habe ich ehrlich gesagt nicht verstanden, weil ich nicht weiß, was die mit “using” meinen. Inkscape meinst Du als Viewer, oder? Der Firefox müsste das doch aber auch hinbekommen. Du schreibst, dass das Skript PNG-Kacheln erzeugt. Kann es sein, dass Du Dich da vertippt hast? Erstens bräuchte man dann kein Inkscape, und zweitens liefert das Original nur SVG. Danke, Kristian

Das kommt darauf an, was Du haben willst… Das original Script liefert Dir ein SVG aus einer OSM-Datei. Mein modifiziertes (bzw. erweitertes) Script geht noch einen Schritt weiter und macht aus dem SVG die Kacheln (oder Tiles) als PNGs.

Nein, man braucht kein xmlstarlet! Das ist ja meiner Meinung nach das Gute an meinem Script, daß man nur die paar Voraussetzungen, die ich in meiner vorigen Antwort angegeben habe braucht!

In meinem Script benutzte ich Inkscape nicht als Viewer, sondern als “Umwandlungsprogramm” von SVG nach PNG: Stichwort Kommandozeilenoptionen “–export-area” und “–export-png”. Oder vereinfacht gesagt nimmt meine Erweiterung des Scripts das SVG und generiert mit Hilfe von Inkscape die bekannten 256x256 Pixel großen PNGs (mit dem richtigen Namen natürlich, also z.B. “12/2179/1421.png” für die Kachel in der Zoomstufe 12 für die Stadtmitte von München). Man muß nur noch die Zoomstufe und eventuell (falls man nicht den gesamten Bereich des SVGs haben will) die geografischen Koordinaten des Bereiches angeben, den man gerendert haben will.

Nein, siehe oben. Ich hoffe, daß ich es klar genug beschrieben habe wie es funktioniert. Falls nicht: Einfach nochmal nachfragen. Schöne Grüße PA94

Hm. Also ich habe es mal mit dem Original probiert, und da kommen bei mir nur schwarze oder weiße SVG-Kacheln raus. Weiter nix. Auf den ersten Blick jedenfalls. Auf den zweiten findet man immerhin noch ein paar winzige Namen und Symbole (Parkplatz, Schule, …). Das habe ich mal bei Zoomstufe 17 probiert. Woran kann das liegen?

Vorneweg: Unter einer Kachel versteht man z.B. sowas: http://a.tah.openstreetmap.org/Tiles/tile/12/2179/1421.png Dies ist eine Kachel (engl. Tile) für die Stadtmitte von München in Zoomstufe 12. Die drei Zahlen (12, 2179, 1421) am Ende der URL sind kein Zufall, sondern geben nacheinander die Zoomstufe (12), die “X-Koordinate” (2179), d.h. die Nummerierung in West-Ost-Richtung und die “Y-Koordinate” (1421), d.h. die Nummerierung in Nord-Süd-Richtung an. SVG-Kacheln (wie Du schreibst) sind zwar theoretisch denkbar, aber ich habe im Zusammenhang mit OSM noch keine gesehen… Zu Deinem Problem: Mit den Angaben, die Du schreibst kann ich nur mutmaßen: Schreib doch bitte konkret was Du eingegeben hast und was das Script ausgegeben hat.

Hallo PA94! Das klingt ja vielversprechend. Ja, würde das Script gerne mal testen. Wo kann ich es finden? Ob die svg nun durch einen externen Parser geschickt wird oder direkt - wie in orp - von Perl geparst wird, ist letztendlich egal. Dass Du eine Lösung für den Schritt svg nach png hast, ist viel spannender. Interessieren würde mich vor allem auch Dein Ansatz zur Ermittlung der Bounding-Box, da SVG ja diesbezüglich doof sein dürfte und die osm Datei diese Daten erst nach einem einmaligen Parsen hergibt. Funktioniert dies so, oder sind meine Annahmen falsch? - Vielen Dank - Anderes Thema: Hast Du zufällig schon Erfahrung mit den EPSGs in OSM gemacht? - Will sagen - Welche ist jetzt eigentlich die richtige Hausnummer? Ok, also epsg:4326 ist WGS84 LatLon (GPS), epsg:3395 die korrespondierende Merkator-Variante. OSM benutzt allerdings irgendwie ein anderes Ding. epsg:41001 oder so??? Gibt’s hier schon einen Thread oder einen vernünftigen Wiki-Link?

Auf meinem Rechner! :wink: OK, im Ernst: Wie schon oben geschrieben: Laß mir Deine EMail-Adresse zukommen und ich mail Dir das Ding! Eigentlich müsstest Du ja schon meine Adresse haben, da ich Dir zusätzlich zu meiner ersten Antwort hier im Thread auch eine Mail geschickt habe…

Der Ansatz ist eigentlich ganz einfach und nicht auf meinem Mist gewachsen: Schau einfach in das original “orp.pl” Script und suche nach “maxlon”, “maxlat”, “minlon” und “minlat”, schon hast Du Deine Bounding-Box!

Nö, keine Ahnung, mit dem habe ich mich noch nicht beschäftigt.

Moin, also was eine Kachel ist, das ist mir schon klar :wink: Und wenn ich von einer SVG-Kachel spreche, sollte eigentlich auch klar sein, dass ich eben genau das Stückchen SVG meine, das von orp generiert wird. Schließlich ist es auch eine Kachel, die dann lediglich in kleinere PNG-Kacheln aufgeteilt wird. Okay, wie auch immer … ich habe das aktuelle ActivePerl drauf und auch die angegebenen PMs nachinstalliert. Das scheint soweit auch zu funktionieren, denn meckern tut er nicht (nur, wenn ich die Files mal testweise lösche, dann aber auch nicht bei jedem - er scheint also nicht alle zu verwenden). Die Befehlszeile (DOS) ist identisch mit der auf der Wiki angegebenen: perl orp.pl -r osm-POI-features-z17.xml Schwerin.osm. Und das Ergebnis ist das folgende: tools.krza.de/downloads/orp.zip (da sind das pl, das osm und das svg drin). Danke für Hinweise, Kristian

Meines Erachtens liegt das an Deinem Rules-File (“osm-POI-features-z17.xml”). Ich habe es mit diesem http://svn.openstreetmap.org/applications/rendering/osmarender6/osm-map-features-z17.xml ausprobiert und für mich sieht das Ergebnis gut aus.

perl orp.pl -rule osm-map-features-z17.xml -outfile schwerin2.svg Schwerin.osm

Ich habe Dir das Ergebnis auch als Email an die Adresse (k… (at) t**ls.krza.de ← leicht verfremdet um Spam-Bots abzuhalten) geschickt. Falls es bei Dir nicht wie gewünscht klappt einfach nochmal melden.

Ach ich Plötmann … da sah man mal wieder den Baum vor Wäldern nicht … klar hattest Du recht mit dem Rules-File: osm-POI-features-z17.xml … das musste natürlich osm-map-features-z17.xml heißen! Ich hatte eine lange Liste von Rules-Files, die mit 6 anfingen und mit 17 aufhörten … fast jedenfalls … ich hatte nicht gesehen, dass es nach der “map 17” nochmal mit “POI 12” losging und einfach das letzte File verwendet. Naja, passiert :wink: Danke jedenfalls für den Tipp. Jetzt bekomme ich das gleiche Ergebnis und werde das mal mit aktuellen Daten ausprobieren. Wunderbar. Die Option “-r” scheint übrigens mit “-rule” identisch zu sein, daran lag´s also auch nicht, wie ich erst dachte, als ich Deine Befehlszeile sah. Kristian

hey, kurze zwischenfrage: kann mir jemand sagen wo ich ein rules-file für zoomlevel 13 bekomme, dass auch anständige karten ausspuckt? wäre sehr sehr dankbar…sorry-ich weiß, gehört eigentlich nicht hier her…

Gibt es hier: http://svn.openstreetmap.org/applications/rendering/osmarender6/osm-map-features-z13.xml BTW: Bist Du der aus dem Heise-Forum “baldmama…” ?