Eigener Tile-Server

Hallo,
nachdem ich diverse Programme benutze, die OSM-Karten verwenden, ich aber nicht immer und überall einen (großvolumigen) Internet-Anschluss habe und außerdem nicht dauernd öffentliche Tileserver mit meinen Kartenwünschen belästigen möchte, habe ich mich entschlossen mir einen lokalen Tile-Server aufzusetzen. Da alle von mir benutzten Programme (Linux, Android, Windows) sich ihre Tiles von einem (einstellbaren) Tile-Server holen, muss ich so nur ein Notebook mit ein paar GB Daten mitnehmen um für alle Geräte und Programme eine Tile-Quelle zu haben.

Dazu habe ich mir gemäß einer Anleitung, die so ähnlich wie http://forum.openstreetmap.org/viewtopic.php?id=13983 war - ich finde sie jetzt gerade nicht wieder -

  • neues Repository (Debian APT) einbinden
  • einige Pakete installieren
  • ???.osm.pbf herunterladen
  • dieses mit osm2pgsql in die Datenbank importieren
  • renderd neu starten
    einen Tile-Server installiert, was auch bis auf eine paar kleine Haker (Rechte für PGSQL-Zugriff), die ich aber korrigieren konnte, ganz gut funktionierte.

Ich habe ein paar deutsche Bundesländer und ein paar weitere Staaten importiert und bekomme jetzt vom TileServer Tiles zu allen installierten Gebieten ausgeliefert. So weit, so gut.

Inzwischen tauchten aber noch eine Reihe von Fragen auf, die ich trotz mehrstündiger Suche im Web nicht lösen konnte:

  • Die Informationen zur Installation eines Tile-Servers (wie fast alles über OSM) stammen aus mehreren Jahren und sind teilweise total veraltet und damit gegebenenfalls auch falsch, da sich vieles recht schnell (meist zum Guten :slight_smile: ) ändert. Z.B. Postgres-Datenbank 8.x ist seit langem veraltet und in aktuellen Distributionen kaum noch zu bekommen. Außerdem sind viele Beschreibungen unvollständig.
    Wo gibt es eine aktuelle (2012) Beschreibung, wie es heute geht?

  • Wie lautet der osm2pgsql-Aufruf wenn ich[list=*]

  • das erste Land (.osm.pbf-File) einspielen möchte

  • ein weiteres Land zusätzlich einspielen möchte

  • ein Land, das schon eingespielt ist, mit einem neueren osm.pbf-File aktualisieren möchte

  • ein .osm.pbf-File einspielen möchte, das sich mit vorhandenen Daten überschneidet. Z.B. Niedersachsen und Hamburg sind schon eingespielt, ich möchte jetzt aber auf ganz Deutschland erweitern. Oder ich habe mal ganz Europa eingespielt, möchte jetzt aber nur mein nächstes Urlaubsziel aktualisieren.

Bzw. wo gibt es eine Gebrauchsanleitung für osm2pgsql? - Nein: die Seite [http://wiki.openstreetmap.org/wiki/Osm2pgsql](http://wiki.openstreetmap.org/wiki/Osm2pgsql) ist keine Gebrauchsanleitung (eher eine Installationsanleitung) und die man-Page bzw. der Switch '-h' auch nicht (sondern nur eine Liste der Möglichkeiten). [/*] [*]Was muss man nach dem Einspielen tun, damit der Renderer weiß, dass sein Cache veraltet ist?[/*] [*]Gibt es irgendwo eine Beschreibung, wie man die Komponenten des Tile-Servers (Apache, mod_tile, renderd, Datenbank, osm2pgsql, Datenbank-Inhalt) einzeln testen kann, wenn mal wieder keine bzw. nur weiße Kacheln generiert werden?[/*] [*]Gibt es Beschreibungen, wie man Mapnik so einstellen kann, dass die Karten anders/besser aussehen (größe Schrift für 250-dpi-Telefon-Displays, Zoomstufen 10-12 wie Straßenkarten (mehr Ortsnamen) o.Ä.)[/*] [*]Gibt es eventuell eine fertige Tileserver-Appliance für VirtualBox/VmWare?[/*] [*]Und zum Schluss noch etwas ganz Komisches: Warum werden bei mir alle Gebiete (Norwegen, Schweden und Finnland), die nördlich des Polarkreises liegen leer (d.h. nur als Küstenlinien) ausgegeben (Oslo sieht prima aus, Tromsø ist leer)? Datenquellen: [http://download.geofabrik.de/osm/europe/norway.osm.pbf](http://download.geofabrik.de/osm/europe/norway.osm.pbf) von gestern [/*] [/list]

Es wäre schön, wenn ihr etwas Licht in das Dunkel bringen könntet.

mfg Volker

Kennst du http://switch2osm.org/?

Jetzt ja :slight_smile:

Das hätte mir etliche Stunden Arbeit gespart. Hier steht ja komprimiert eine Menge von (vor allem aktuellen) Informationen, die man sich sonst erst an Tausenden von Stellen zusammenkramen muss.

Allerdings werden auch hier die Fragen nach Einspielen und Update von mehreren Nicht-Planet-Files bzw. wie ein partieller Update ohne osmosis funktioniert nicht beantwortet.
Und schon gar nicht, warum es nördlich des Polarkreises so leer ist :slight_smile:

Aber es hilft schon mal sehr viel weiter.
Danke.

mfg Volker

Hallo,
es ist mir leider aufgrund der fehlenden Funktions-Beschreibung für osm2pgsql nicht gelungen einen Datenbestand für mehrere Länder zu erzeugen. Ich dachte

osm2pgsql -s -C 4000 germany.osm.pbf
for NM in belgium.osm.pbf denmark.osm.pbf finland.osm.pbf great_britain.osm.pbf \
    ireland.osm.pbf netherlands.osm.pbf nord-pas-de-calais.osm.pbf norway.osm.pbf \
    sweden.osm.pbf
do
    osm2pgsql -s -a -C 4000 $NM
done

wäre eine gute Idee, um einen Datenbestand aus mehreren OSM-Files zu befüllen, aber leider werde ich nach einem immerhin 5 Stunden (Maschine mit Hex-Core und 8 GB RAM ) dauernden Import für Deutschland, der scheint’s ansonsten funktionierte, bei jeder weiteren Datei mit einem

Reading in file: xxxxxx.osm.pbf
Processing: Node(8786k 204.3k/s) Way(626k 8.35k/s) Relation(0 0.00/s)COPY_END for COPY planet_osm_ways FROM STDIN;
 failed: FEHLER:  doppelter Schlüsselwert verletzt Unique-Constraint »planet_osm_ways_pkey«
CONTEXT:  COPY planet_osm_ways, Zeile 810: »4016206	{...«

beglückt. Uns das hilft mir nun leider gar nicht weiter, außer dass ich nun weiß, dass es so wohl nicht geht :frowning:

Kann mir denn jemand verraten, wie man dieses Ziel erreichen kann?

mfg Volker

Ich kann dir nciht viel zu osm2pgsql sagen. Aber im allgemeinen sollte man sich den nächst größeren Extrakt laden, bei bedarf zurecht schneiden und diese eine OSM-Datei dann importieren/verarbeiten. Ansonsten bekommst du an den Übergängen Artefakte, Inkonsistenzen etc.

Hallo,
kann man denn - und wenn ja, wie - dabei wenigstens sinnvoll mehrere Teil-Gebiete setzen? Wenn ich mir schon aus ganz Europa den Norden rauspicken muss, möchte ich nicht - wegen eines Urlaubs in Mallorca - nun auch noch den ganzen Rest importieren müssen.

Gibt es denn mal irgendwo mehr bzw. sinnvollere Beispiele für den Aufruf von osm2pgsql als die immer gleichen Trivial-Aufrufe

  • Komplett-Bestand mit Planet.osm

  • Bestand mit einer Stadt

  • Bestand mit einem Land

  • Bestand mit einer Region aus irgendeinem OSM-File

?

Bzw. vielleicht gibt’s vielleicht doch mal eine Beschreibung irgendwo?

mfg Volker

PS:
Merke: Ein Programm mit mehr als zwei Command-Line-Schwitchen ist ohne Funktionbeschreibung grober Mist!
Eine Funktionbeschreibung ohne mehrere (auch nicht-triviale) Beispiele taugt bei mehr als 5 möglichen Switchen auch nichts!

merge mal die für Dich interessanten Gebiete vorher mit osmosis und lade sie dann