Как загрузить несколько файлов 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), это будет очень медленно, и лучше сначала объединить все файлы, а затем импортировать их как один большой файл.