Ubuntupaket für lokalen Tileserver

Mmh, ich spreche jetzt vom nicht-ambitionierten Tileserverbetreiber, welcher mit
viel Mueh und Hingabe Dtl. sich eingerichtet hat und nach Wochen (Monaten) sein
geliebtes Mittelfranken updaten moechte.
Ihm wuerde dann gesagt: Watten? Upgraden? Viel zu lange. Dtl. neu einspielen!

:frowning:

Das verstehe ich jetzt nicht. Es gibt doch die Region Mittelfranken. Und du hast selbst festgestellt, dass ein Update offenbar deutlich länger braucht als ein neu einspielen. Bei dir waren es 200x so lange. Glaubst du wenn es um zwei oder drei Regionen geht, dass es dann wirklich noch einen zeitlichen Unterschied macht? Außerdem werden wir keinen Einschränken in seinen Freiheiten. Es scheint nur wenig sinnvoll zu sein. Eventuell könnte aber auch osm2pgsql angepasst werden und dort eine Kontrolle erfolgen, ob das Element bereits existiert und es andernfalls mit Insert einlesen. Da aber osm2pgsql geschrieben wurde um einen Planeten zu verwalten, ist das Interesse des Entwicklers möglicherweise begrenzt.

Achwo.

Du kannst bei postgresql auch mehr als eine Datenbank am Laufen halten.
Bei mir gibts osmdb, bboxdb und powerdb.
Man muß vor dem Rendern nur die datasource.inc austauschen, damit sich Mapnik bei der richtigen Datenquelle bedient. Dafür gibts bei mir entsprechende batch-Dateien.

Beim Rendern muß man noch drauf achten, dass die zu rendernden Tiles alle komplett innerhalb des Extraktbereichs leigen, sonst gibts weiße Flächen.
Deshalb rendere ich dann in ein Test-Verzeichnis, und sondere halbvolle Tiles aus, bevor ich die brauchbaren ins richtige Verzeichnis kopiere.

Gruß,
ajoessen

Hast Du 'ne Anleitung dazu?

Versteh ich jetzt nicht, wie mehrfach vorhandene Datenbanken mein Problem löst:
Einmaliges Einspielen eines etwas größeren Bereich (z. B. Dtl.) und dann in unregelmäßigen Abständen
Updaten eines wesentlichen kleineren Bereichs (z. B. Mittelfranken).

Desweitern denke ich, dass dieser Anwendungsfall für nicht-power-user häufiger auftreten wird als den Planeten minütlich up2date zu halten.

Habe heut’ früh mit Markus’ neuen osmconvert
kleines_mittelfränkische_dorf_nahe_oberpfalz.osm in pbf konviert und dann per osm2pgsql eingelesen.
Ging viel schneller ist aber dann abgebrochen.

Schade.

Ciao,
Frank

http://wiki.openstreetmap.org/wiki/User:Ajoessen/myMapnik

Wieso nicht? Du hast zwei separate Datensätze, und kannst osm2pgsql und mapnik jewelis sagen, welche sie bedienen oder benutzen sollen.
osm2pgsql löscht immer nur den Datensatz, den es anschließend neu befüllt.

Edit: Für Höhenlinien hatte ich auch eine separate Datenbank srtm2db angelegt, mit der ich mir einen transparenten Höhenlayer erzeugt habe.

gruß,
ajoessen

Also Die Aussage ist jetzt einfach, dass es günstiger ist sich das zwei oder drei Bundesländer schnell in je eine Datenbank einzulesen, anstatt ganz Deutschland und dies dann auch noch mühselig aktuell halten. Zum Beispiel könntest du dir Bayern und BaWÜ in die Datenbank legen und wärst damit wahrscheinlich schneller fertig, als wenn du dir Deutschland anlegst.
Das Problem ist, dass man dann im überscheidenden Bereich Probleme bekommt.
Das aktuell halten von lokalen Datenbanken welche nur einen Ausschnitt beinhalten ist eh schwierig. Da es diffs nur für den Planeten gibt. Damit müssen auch die Poweruser gelegentlich ihre Datenbank neuaufsetzen.

Der von dir beschriebene Weg klingt sehr interessant. Du willst quasi immer nur einen kleinen Bereich aktuell halten. Das geht meiner Meinung nach am Besten, wenn du dir das Diff selbst erstellst. Dafür brauchst du nur den Ausschnitt vom Tag an dem du ihn eingelesen hast und den aktuellen Stand gegeneiander vergleichen lassen. Dann sollte auch das Diff File viel kleiner werden und sich schneller einlesen lassen.

Ich weiß nicht, ob sich das lohnt:

0,5*0,5 Grad sind in 15 Minuten ausgeschnitten und in die Datenbank gekippt, und 2 Stunden später sind alle Tiles von Zoomstufe 8 bis 16 mit Mapnik gerendert.

Bei 0,1*0,1 Grad dauert der ganze Prozess nur noch 6 Minuten.

Also für unterhalb eines Bundeslandes lohnt sich das diff-einspielen nicht wirklich gegenüber dem neueinspielen.

Gruß,
ajoessen

Ach so,
das waere also dann ein
DB gis-germany (mit “statischen” Inhalt)
sowie eine
DB gis-mittelfranken (mit “dynamischen” Inhalt")
welche ich “update” indem ich sie komplett neu einspiele.

Mmh, dann brauch’ ich aber auch zwei URLs:
http://localhost/osm/slippymap_germany.html

http://localhost/osm/slippymap_mittelfranken.html

?
Und wie mache ich das dann mit dem renderd, kann der dann auch zweimal laufen?

Ciao,
Frank

Nö, die fertigen Tiles wirfst du ins gleiche Verzeichnis.

Den hab ich nicht. Ich rendere alles auf einmal nach dem Datenbankupdate.
Wenn du einen Datensatz aktuell hältst, muß das Rendern auf Anfrage natürlich dorthin zeigen. Darf dann aber nicht über die Grenzen des Bereichs hinausgehen.

Gruß,
ajoessen

Also du brauchst natürlich nicht zwei Slippymaps. Denn du kannst ja auch gerne in deine Map einen weiteren layer integrieren. Den zweiten kleineren Layer legst du obendrüber und fertig.

Du machst auch was ganz anderes Ajoessen. Kellerma hat hier das Serverpacket installiert, welches auf Anfrage bestimmte Tiles renderd. Du hingegen renderst alles verfügbare und stellst es dann auf dem Server aus.
Ob renderd dann zweimal laufen kann, habe ich auch schon gefragt, weil ich gerne transparente Layer oben drüber legen möchte.

Renderd kann bis zu 10 Layers gleichzeitig verwalten und rendern. Man Muss sie nur alle in die rändert.conf eintragen. Renderd könnte theoretisch auch mehr, aber 10 sind derzeit fest im Sourcecode eingetragen. Eine alternative wäre Tirex, damit rändert die Wikipedia mehr als 200 layers gleichzeitig.

Es ist aber auch kein Problem renderd mehr mals laufen zu lassen. Lediglich muss man verschiedene renderd.conf anlegen und unterschiedliche Socket Verzeichnisse verwenden.

In einer neuen Version von osm2pgsql ist nun zum Teil die Memory Effizienz gesteigert worden, so das nun bei gleicher Cache-groesse deutlich groessere Extrakte verarbeitet werden koennen. Ausserdem wurde teile der Verarbeitung parallelisiert was die Geschwindikeit auf multi-core Prozessoren teilweise steigern sollte.

Hoffentlich funktionieren die Verbesserungen auf allen Systemen auf anhieb, aber wenn nicht kann man mit den folgenden 3 Optionen spielen: “–cache-strategy”, “–number-processes” und der cache Groesse “-C”. Ausserdem waere es hilfreich hier irgendwelche Bugmeldungen zu berichten.

Hi,

ich bin grade dabei einen Tileserver aufzusetzen … allerdings auf Debian basis … und ich steh vor einem Problem, mit dem ich nicht klar komme
wie bekomme ich ein “ppa repository” ins Debian rein ?!

hier eine kleine Hilfe: http://blog.anantshri.info/howto-add-ppa-in-debian/ (gefunden habe ich es über Google)

Die methode hab ich schonmal ausprobiert … komischerweise ging es jetzt :smiley:

danke ^^

Jetzt hängts am osm2pgsql befehl … dieser ist nicht installiert und lässt sich auch nicht einfach so installieren … wenn ich “apt-get install osm2pgsql” ausführe, bekomme ich folgende meldung:

root@osm:~# apt-get install osm2pgsql
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut       
Statusinformationen werden eingelesen... Fertig
Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass
Sie eine unmögliche Situation angefordert haben oder, wenn Sie die
Unstable-Distribution verwenden, dass einige erforderliche Pakete noch
nicht erstellt wurden oder Incoming noch nicht verlassen haben.
Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen:

Die folgenden Pakete haben unerfüllte Abhängigkeiten:
 osm2pgsql : Hängt ab von: libgeos-3.1.0 (>= 3.1.0) ist aber nicht installierbar
E: Beschädigte Pakete

libgeos ist allerdings schon in der version 3.2.0 installiert und durch ein neuinstallieren des paketes wurde es auch nicht besser :confused:
jemand ne ahnung wie ich da weiter vorgehen kann ?

Moin moin,

hast Du Debian 6 oder 5?

osm2pgsql hab’ ich bei mir “lokal” installiert per
dpkg -i “osm2pgsql_0.80.0-5_amd64.deb”
und die /etc/apt/sources.list
das
deb http://ppa.launchpad.net/kakrueger/openstreetmap/ubuntu natty main
wieder einkommentiert.

Jetzt muss ich zwar osm2pgsql per
LD_LIBRARY_PATH=/usr/local/lib osm2pgsql
aufrufen, aber dafür bleibt die Paketverwaltung sabuer :wink:

Ciao,
Frank

Ich benutze Debian 6
hab das jetzt auch “lokal” installiert :wink: benutzt du

deb http://ppa.launchpad.net/kakrueger/openstreetmap/ubuntu natty main

auch für debian 6 ? weil ich da lucid anstatt wie bei dir natty benutze

der befehl

LD_LIBRARY_PATH=/usr/local/lib osm2pgsql

schein bei mir auch zu funktionieren … allerdings nicht als root …da wird mir der fehler ausgegeben:

osm2pgsql SVN version 0.80.0 (32bit id space)

Connection to database failed: FATAL:  Ident-Authentifizierung f?r Benutzer >>root<< fehlgeschlagen

mit welchem benutzer muss ich das machen ?

Es ist erforderlich bei der Konfiguration des Paketes neben dem user www-data auch noch einen weiteren user (mit welchem man importiert am günstigesten den eigenen) anzugeben.
Da dies leider nicht sehr deutlich bei der Installation zu sehen ist gibts Hilfe:
http://wiki.openstreetmap.org/wiki/DE:Ubuntu_tile_server#Zugriff_verweigert_fuer_osm2pgsql
Dort ist ein Skript aufgeführt mit welchem du quasie einen beliebigen Nutzer nachinstallieren kannst.

also irgendwie fehlt hier die ganze DB-Struktur … beim ausführen des befehls bekomme ich folgende meldung:

postgres@osm:/root$ LD_LIBRARY_PATH=/usr/local/lib osm2pgsql --slim -C 1500 hamburg.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« existiert nicht, wird übersprungen
HINWEIS:  Tabelle »planet_osm_point_tmp« existiert nicht, wird übersprungen
SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, 'POINT', 2 );
 failed: FEHLER:  Funktion addgeometrycolumn(unknown, unknown, integer, unknown, integer) existiert nicht
LINE 1: SELECT AddGeometryColumn('planet_osm_point', 'way', 900913, ...
               ^
HINT:  Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.

Error occurred, cleaning up

selbst nach mehrmaligem ausführen von “sudo dpkg-reconfigure openstreetmap-postgis-db-setup” wird keine DB angelegt …

muss ich das alles manuell machen ?