Nakaner
(Nakaner)
11
Hallo,
Die Doku legt das nahe, aber die Praxis bzw. ein Blick in den Quellcode sagt, dass das eine Lösung für Geduldige ist.
Osm2pgsql hat zwei Modi – den normalen und den Update-Modus. Beim normalen Modus werden die Tabellen, die gefüllt werden sollen, gelöscht und dann neu angelegt. Mit diesem Modi importiert man eine .osm.pbf-Datei. Für den Update-Modus muss man explizit “–append” ergänzen. Dieser kann zwar auch .osm.pbf-Dateien lesen, aber gedacht ist er, um Diff-Updates im .osc.gz-Format zu laden.
Wenn du zwei Regionen in der Datenbank haben willst, ist es nicht empfehlenswert, die zweite mit --append zu importieren. --append lädt die Daten ganz anders und ist erheblich langsamer, da beim Schreiben jedes Objekts zuerst versucht wird, es aus der Tabelle zu löschen. Das sind unzählige Zugriffe, die trotz der Nutzung eines Index langsam sind. (Wenn du mit --drop importiert hast, werden die Indexe auf die osm_id- bzw. id-Spalte nicht angelegt)
Es gibt zwei Lösungen:
- Mit dem Osmium-Tool und dessen Befehl “merge” die zwei zu importierenden Dateien vereinigen und erst dann mit Osm2pgsql importieren.
- Die zwei Gebiete mit dem extract-Befehl des Osmium-Tool aus einer Datei ausschneiden, die beide Gebiete umfasst.
Viele Grüße
Michael