[OSM-dev] updating local osm data

Holger Schöner numenor at ancalime.de
Wed Jul 15 20:05:59 BST 2009


Hallo Stefan,

Wir haben uns am Wochenende in Amsterdam kennen gelernt, oder? Ich wollte in 
den nächsten Tagen sowieso mal schauen, ob ich deine Email herausfinde, um 
den Kontakt vielleicht weiter aufrecht zu erhalten!? Und jetzt kommt mir der 
Zufall zur Hilfe ;-)

> I'm programming a client what loads osm data from xapi. To reduce
> downloading data I would like to do an update to the dates I already
> have got locally. I've read the XAPI doc in the wiki but I didn't saw a
> possibility.
>
> Does the api provide a mechanism to recognize if nodes, ways or
> relations have been udated?

Da ich mich mit Rendering beschäftige, habe ich versucht, meine Rendering-
Datenbank auf dem aktuellen Stand zu halten. Dafür gibt es im Prinzip vier 
(mir bekannte) Wege, die alle über irgendwelche Change-Files gehen:

1) irgendwo auf planet.openstreetmap.org gibt es diff files zu planet-files. 
Ich habe aber noch nicht ausprobiert, ob die sich irgendwie auch auf planet-
Auszüge anwenden lassen (vermutlich eher nicht). Wenn man nur an einer 
Region interessiert ist, dürften das zu große Dateien sein ...

Die weiteren Möglichkeiten arbeiten alle mit osmosis, das auf Wunsch nach 
einer Initialisierung automatisch von planet.openstreetmap.org die 
täglichen, stündlichen, oder minütlichen change-files (.osc) herunterladen 
und anwenden kann. Ein Beispiel ist auf der Wiki-Seite "Minutely Mapnik" 
beschreiben.

2) Anwenden der Changes mittels osmosis auf eine heruntergeladene .osm-
Datei. Das sollte (inzwischen) auch auf Planet-Extrakten arbeiten (per Josm 
geladene Datei, von der Api gelieferte, aus Geofabrik/Cloudmade Extrakten, 
oder aus daraus extrahierten Dateien).

3) Setup einer eigenen Api-Datenbank, die die originale Datenbank mirrored. 
Potenziell recht groß, aber man könnte sie evtl. auf eine Boundingbox 
beschränken. Import der Changefiles mittels osmosis, um diese Datenbank 
(inklusive History-Tabellen bei Bedarf) dann auf dem aktuellen Stand zu 
halten. Aus dieser Datenbank kann man sich dann bei Bedarf selber Extrakte 
erstellen. Das habe ich bereits ausprobiert, ist aber auf meinem Laptop mit 
2GB Hauptspeicher viel zu langsam (hauptsächlich der Import der täglichen 
Changes: Dauert etwa 2-3 Stunden, je nach Changes-Größe).

4) Setup einer (Mapnik-) Rendering-Datenbank, und Aktualisierung mittels der 
Changefiles durch osm2pgsql. Ich weiß nicht, ob dort alle für dich 
relevanten Daten enthalten sind. Habe ich auch schon ausprobiert, und ist 
etwas einfacher als 3), aber der tägliche Import ist auf meinem Laptop noch 
langsamer.

Ich habe mir in der Zwischenzeit einen größeren Server mit 12GB 
Hauptspeicher besorgt, den ich gerade aufsetze. Mit dem möchte ich diese 
Schritte dann noch einmal probieren. Sollte ich Erfolg haben, kann ich dir 
das gerne weiter melden ...

Kommt von diesen Ansätzen irgendetwas für dich in Frage? Ggf. könnte ich 
weitere Details beisteuern.

Viele Grüße,
-- 
Holger Schoener		numenor at ancalime.de




More information about the dev mailing list