Как загрузить несколько файлов OSM в Nominatim

Мне нужно выяснить процесс загрузки нескольких файлов OSM в базу данных Nominatim. У меня есть все настройки и могу загрузить один файл без проблем.

По сути, я пытаюсь загрузить некоторые файлы OSM GeoFabrik только для части мира. Поэтому я беру как файлы OSM в Северной Америке и Южной Америке. Или любые 2 на их сайте.

Для первой загрузки я использую setup.php:

./utils/setup.php --osm-file file.osm --all --osm2pgsql-cache 4000

Я не уверен, если у меня есть другой файл (file2.osm), как загрузить это в базу данных и сохранить исходные данные.

По сути, я просто хочу кусочки мира, и мне нужно загружать данные каждые шесть месяцев или около того. Мне не нужны ежедневные обновления / и т.д...

Мне нужно разделить файлы, потому что это занимает слишком много времени для загрузки, и я хочу управлять им лучше.

Могу ли я использовать update.php..... но не уверен, какие параметры.

Я думал о загрузке всех данных с обновлением и без индекса... Тогда, возможно, создание индекса??

Я попытался повторно запустить setup.php для второго файла но он просто долго висел для второго файла

./utils/setup.php --import-data --osm-file file2.osm --osm2pgsql-cache 4000

Но это просто висит на Setting up table: planet_osm_ways, (Я тестировал очень маленькие файлы OSM, которые должны завершиться в течение нескольких минут, но он просто зависает).

Все файлы, которые я использую, не пересекаются, поэтому они не обновляются. Так что у меня есть Северная Америка и Южная Америка... Как мне загрузить оба в Nominatim отдельно.

Спасибо

2 ответа

Пример кодекса слияния, слияния Андорры, Мальты и Лихтенштейна,

curl -L 'http://download.geofabrik.de/europe/andorra-latest.osm.pbf' --create-dirs -o /srv/nominatim/src/andorra.osm.pbf
curl -L 'http://download.geofabrik.de/europe/malta-latest.osm.pbf' --create-dirs -o /srv/nominatim/src/malta.osm.pbf
curl -L 'http://download.geofabrik.de/europe/liechtenstein-latest.osm.pbf' --create-dirs -o /srv/nominatim/src/liechtenstein.osm.pbf

osmconvert /srv/nominatim/src/andorra.osm.pbf -o=/srv/nominatim/src/andorra.o5m
osmconvert /srv/nominatim/src/malta.osm.pbf -o=/srv/nominatim/src/malta.o5m
osmconvert /srv/nominatim/src/liechtenstein.osm.pbf -o=/srv/nominatim/src/liechtenstein.o5m

osmconvert /srv/nominatim/src/andorra.o5m /srv/nominatim/src/malta.o5m /srv/nominatim/src/liechtenstein.o5m -o=/srv/nominatim/src/data.o5m

osmconvert /srv/nominatim/src/data.o5m -o=/srv/nominatim/src/data.osm.pbf;

Подробнее об OsmConvert -> https://wiki.openstreetmap.org/wiki/Osmconvert

После объединения вы можете,

sudo -u nominatim /srv/Nominatim/build/utils/setup.php \
      --osm-file /srv/nominatim/src/data.osm.pbf \
      --all \
      --threads ${BUILD_THREADS} \ # 16 Threads?
      --osm2pgsql-cache ${OSM2PGSQL_CACHE}  # 24000 ?

Ответ можно найти по адресу help.openstreetmap.org.

Сначала вам нужно импортировать его через скрипт обновления: ./utils/update.php --import-file <yourfile>, Затем вам нужно запустить реиндексацию данных: ./utils/update.php --index

Но, по словам lonvia (одного из разработчиков Nominatim), это будет очень медленно, и лучше сначала объединить все файлы, а затем импортировать их как один большой файл.

Другие вопросы по тегам