Ubuntupaket für lokalen Tileserver

http://infoblog.li/firefox-timeout-zeit-erhhen/

Uff, das war aber jetzt ein schwere Geburt :wink:

Nachdem ich aus dem svn schnell per dpkg-buildpackage ein Paketchen gebaut habe,
habe ich am Schluß erst gemerkt, dass noch ein “000-default” im “sites-enabled” lag und so
der apache mit dem renderd nicht sprach.

:slight_smile:

Ciao,
Frank

Yup, deswegen hat die neuste Version der packete im postinstall script ein
“a2dissite default” “a2ensite tileserver_site”, da man die default site und die tileserver_site nicht gleichzeitig betreiben kann. :wink:

Nun habe ich es bis hierher geschafft. Zum testen habe ich Bremen genommen.

Ich schummle da immer :wink:
indem ich den “postgres”-User nehme:


user@host:~$ osm2pgsql -U postgres bremen.osm.pbf
osm2pgsql SVN version 0.80.0 (32bit id space)

Using projection SRS 900913 (Spherical Mercator)
Setting up table: planet_osm_point
HINWEIS:  Tabelle »planet_osm_point_tmp« existiert nicht, wird übersprungen
Setting up table: planet_osm_line
HINWEIS:  Tabelle »planet_osm_line_tmp« existiert nicht, wird übersprungen
Setting up table: planet_osm_polygon
HINWEIS:  Tabelle »planet_osm_polygon_tmp« existiert nicht, wird übersprungen
Setting up table: planet_osm_roads
HINWEIS:  Tabelle »planet_osm_roads_tmp« existiert nicht, wird übersprungen
Mid: Ram, scale=100
Reading in file: bremen.osm.pbf
Processing: Node(312k 104.2k/s) Way(57k 6.43k/s) Relation(1580 316.00/s)  parse time: 17s

sowie In der /etc/postgresql/8.4/main/pg_hba.conf eingetragen habe (nach mapnik-wiki-artikel):


# Database administrative login by UNIX sockets
#local   all         postgres                          ident

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
#local   all         all                               ident
local   all         all                               trust
# IPv4 local connections:
#host    all         all         127.0.0.1/32          md5
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
#host    all         all         ::1/128               md5
host    all         all         ::1/128               trust

Ciao,
Frank

Hab mal eine angelegt:

http://wiki.openstreetmap.org/wiki/Ubuntu_tile_server

@ kellerma

Danke für den Tipp.

Jedoch auch nach Änderung des timeout keine Kachel zu sehen.

Hi,

das importieren der Daten hat also schon mal geklappt?
Hast Du auch den renderd danch restartet?

Danach wuerd’ ich den
den renderd im Vordergrund laufen lassen per
sudo /usr/bin/renderd -f
um zu sehen wie er startet.

Desweiteren mal die Logfiles von Apache
sudo tail -f /var/log/apache2/error.log
umd das der Datenbank
sudo tail -f /var/log/postgresql/postgresql-8.4-main.log
beobachten waehrend Du einen request mit dem Browser erzeugst.

Ciao,
Frank

Jetzt nochmal langsam. Womit hast du genau Probleme. Hast du die Daten in die Datenbank eingelesen? Falls du das nicht geschafft hast wäre es kein Wunder wenn du keine Kacheln siehst.
Hast du die automatische Konfiguration des Tools benutzt? Dort habe ich alle Standardwerte übernommen und nur bei dem Datenbanknutzer meinen Benutzernamen zu www-data hinzugefügt. Sonst waren keine weiteren eingriffe nötig.

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.