Ubuntupaket für lokalen Tileserver

Ich hoffe du bist mir nicht böse, wenn ich deine Tipps mit Erklärungen zwischen die einzelnen Befehle geschrieben habe.
Kann jemand ein paar Screenshoots hochladen um das ganze etwas anschaulicher zu machen?
Macht es Sinn einen eigenen Bereich für die GUI Installation anzulegen?
Wollen wir einen Bereich ergänzen in dem die Konfiguration des OSMviewers für diesen Server erklärt wird?

Möglicherweise hat mein osm2pgsql beim Einsatz von pbf’s ein Speicherloch (nach Sekunden unbrauchbar) :wink:
oder es braucht wirklich soviel Speicher.

Habe daher per
osmconvert berlin.osm.pbf > berlin.osm
umgemodelt, dauerte bei mir 16 Sekunden.

Und dann per
$ osm2pgsql -U postgres berlin.osm
eingelesen. Ist zwar nicht schnell
Processing: Node(1339k 29.8k/s) Way(245k 4.30k/s) Relation(4467 319.07/s) parse time: 116s
dafür schafft es mein 1 GB netbook (mit verschlüsselter Platte) in 5 min:
Osm2pgsql took 299s overall

Ge-swap-t wird zwar immer noch, aber nur leicht und auch “mittelfranken.osm” (50% größer als berlin.osm) geht noch. :slight_smile:
Bei bayern.osm wird’s wohl die Grätsche machen :wink:

Ciao,
Frank

EDIT:
So, jetzt hab’ ich mal eine neuere Library (protobuf-c aus dem svn) verwendet:
$ LD_LIBRARY_PATH=/usr/local/lib osm2pgsql -U postgres --slim -C 800 berlin.osm
Processing: Node(1339k 15.8k/s) Way(245k 4.02k/s) Relation(4467 78.37/s) parse time: 203s
Osm2pgsql took 550s overall

$ LD_LIBRARY_PATH=/usr/local/lib osm2pgsql -U postgres --slim -C 800 berlin.osm.pbf
Processing: Node(1339k 24.8k/s) Way(245k 5.71k/s) Relation(4460 94.89/s)  parse time: 144s
Osm2pgsql took 484s overall

=> Als doch beim “pbf” bleiben :slight_smile:

EDIT2:
Mittelfranken geht auch noch, sogar ohne “-C 800” Parameter:
$ LD_LIBRARY_PATH=/usr/local/lib osm2pgsql -U postgres --slim data/geofabrik/mittelfranken.osm.pbf
Processing: Node(2343k 26.3k/s) Way(362k 4.48k/s) Relation(7150 65.00/s) parse time: 280s
Osm2pgsql took 877s overall

=> Stets “–slim” benutzen

Ich führe die Befehle aus wie im wiki. Mit restart.

An den User www-data kann ich mich nicht erinnern.

Wie starte ich die Konfiguration ein weiteres mal?

Zwischenzeitlich habe ich libapache2-mod-tile de- und wieder installiert.

Konfiguration wurde danach nicht abgefragt.

Es wird während der Installation gefragt ob man das Paket konfigurieren möchte. Danach kommt die Frage nach Datenbank, User und Küstenlinien. Möglicherweise auch in anderer Reihenfolge. Ob das Paket bei der Deinstallation die Konfiguration irgendwo speichert weiß ich nicht. Aber Kai hat schon erkannt, dass die Installation nicht sehr fehlertollerant ist und arbeitet vielleicht schon an weiteren Skripten.
Ich selbst habe Linux immer neu installiert bzw. die virtuelle Maschine kopiert und so immer ein frisches Linux gehabt.

Evtl. sollte man den Hinweis, dass es derzeit noch etwas beta ist und daher in einer VM besser aufgehoben ist auch im wiki erwähnen.

War nur als Initialzündung gedacht. Klar, es darf von allen ergänzt werden. :wink:

Ich habe jetzt noch ein paar Kleinigkeiten erweitert / verbessert.

  • Es ist nun eine slippymap unter http://localhost/osm/slippymap.html enthalten mit dem es einfacher sein sollte zu sehen was es gemacht hat
  • Mn kann nun nachtraeglich mit “/usr/bin/install-postgis-osm-user.sh gis peter” nachtraeglich user hinzufuegen
  • Es ist nun auch fuer Ubuntu 11.10 (oneiric) verfuegbar
  • Es sollte nun auch mit Postgresql 9.1 kompatibel sein (noch nicht wirklich getestet)

Ausserdem habe ich angefangen es leichter zu machen minutely diffs einzuspielen.

sudo apt-get install osmosis
sudo install-postgis-osm-user.sh gis www-data
sudo su www-data /usr/bin/openstreetmap-tiles-update-expire.sh 2011-10-09
sudo su www-data /usr/bin/openstreetmap-tiles-update-expire.sh

Wobei der letzte Befehl entweder in eine Schleife verpackt werden muss, oder in cron eingefuegt werden muss um den Server aktuell zu halten. Ausserdem aktuallisiert der Befehl maximal eine Stunden (eine Einstellung von Osmosis). Das heist wenn man mehr als eine Stunde hinter her ist, z.B. weil man das Berlin extrakt von Gestern verwendet hat, muss man den Befehlt ebenfalls wiederholt aufrufen. Der erste Aufruf von openstreetmap-tiles-update-expire.sh mit Datum als Parameter initialisiert osmosis fuer die Replikation. Das Datum sollte dabei das Datum der importierten Daten sein.

Hallo Kai,

schön das die Entwicklung voranschreitet. Ich habe keine Ahnung was deine Skripte tun. Aber ich wollte vorschlagen, statt osmosis eventuell osmupdate zu bemühen. Der Vorteil ist das hier zum einen das Programm selbst den Timestamp des zu letzt editierten Elementes der Pbf Datei ermittelt und zum anderen kümmert es sich selbständig darum die möglichst größten Häppchen Daily hourly minutely vom Server lädt und die zusammen in eine OSC Dateiverpacken kann. http://wiki.openstreetmap.org/wiki/Osmupdate

Eine andere Frage sind die Installationsskripte an sich. Ich habe immer noch keine Möglichkeit gefunden mich grafisch mit der Datenbank zu verbinden. Wie lauten denn die Daten? Server: localhost User: Benutzername wie eingerichtet Passwort: ? Port: ? Datenbankname: gis

Ist es möglich über einen Skriptbefehl den aktuellen Username auszulesen und dann entsprechend automatisch zu ergänzen?

Wie kann man die Installation um einen weiteren Layer ergänzen?

Was mich noch interessieren würde:
Wo im Filesystem liegen die ganzen Sachen (DB / Tiles, etc.) ?
Wie kann ich simple SQL Abfragen machen ?

für simple SQl Anfragen meldest du dich einfach mit pgsql gis an und machst tippst dann deinen SQL Code ein. Da wird man nach keinem Passwort gefragt.

Die style sheets und coastlines liegen in /etc/mapnik-osm-data
Die tiles liegen in /var/lib/mod_tile
Die configuration von renderd in /etc/renderd.conf
Die von mod_tile in /etc/apache2/sties-available/tileserver_site
Die scripts liegen unter /usr/bin

sudo dpkg-reconfigure openstreetmap-postgis-db-setup

Ja, leider speichert ubuntu die configuration und fraegt sie bei einem reinstall nicht noch einmal ab.

Alternativ kann man auch mit

sudo /usr/bin/install-postgis-osm-user.sh gis xyz

den Benutzer xyz in die Datenbank gis nachtraeglich hinzufuegen.

Mmh, mit der neumodischen Ubuntu-Zeug kenn’ ich mich nicht so aus :wink:
Bei goo’ ol’ Debian geht’s so:
$ pgadm3
→ Verbindung zum Server hinzufügen
→ Name tileserver
→ Server localhost
und dann 2x drücken.
Anschließend kann ich unter “Datenbanken” die “gis”-db auswählen.

That’s it :slight_smile:

Ciao,
Frank

Supi, funktioniert aber anscheinend wirklich nur lokal (nicht von einem anderen Rechner
im Netzwerk aus). Zieht der die Openlayer.js auch von lokal?

Chris

Noch schnell zwei Anmerkungen (wenn ich es richtig verstanden habe ;):

Ciao,
Frank

Cooles Projekt!

Werde ich ausprobieren

Läuft der das Zeugs auch unter der Server-Variante?
Wo kann ich den MapStyle ändern?
Hört der Webserver auch auf eine Netzwerkschnittstelle?

Wenn jetzt noch das automatische Update kommt, dann ist das ne super Variante seine eigene Karte zu rendern!

Danke & Gruß

Thomas

Selbstantwort:
(a) lässt sich ändern durch Ersetzung von “localhost” durch den Rechnernamen in der slippymap.html
(b) nein. Hab mir die OpenLayers.js und OpenStreetMap.js nach /var/www/osm/js kopiert und
die slippymap.html angepasst. Funktioniert aber nur zu 90%, da die Controls nicht angezeigt
werden. Muss ich da noch was nach lokal kopieren?

Wie komme ich denn an an das Skript slippymap.html ran? ich habe ein


sudo apt-get update

abgesetzt, aber es gibt keine neuere Version. Und da ich die Kacheln für ein Server ohne einen Tileserver benötige: Wie bekomme ich das System dazu, mal eben alle Kacheln zu generieren und in ein Filesystem analog der z/x/y Logik abzulegen?

Ich denke Du meinst psql? Also:

psql gis
\d  (Tabellen anzeigen)
select name from planet_osm_line where ((name) is not null) limit 10;
\q  (Ende)