我需要弄清楚将多个OSM文件加载到Nominatim数据库的过程。我有一切设置,可以加载一个没有问题的文件。
基本上,我尝试做的只是为世界的一部分加载一些GeoFabrik OSM文件。所以我像北美和南美的OSM文件一样抓住了。或者他们网站上的任何2个。
对于第一次加载,我使用setup.php
:
./utils/setup.php --osm-file file.osm --all --osm2pgsql-cache 4000
我不确定我是否有另一个文件(file2.osm)如何将其加载到数据库并保留原始数据。
基本上,我只想要世界各地,我只需要每六个月左右加载一次数据。我不需要每日更新/等等......
我需要拆分文件,因为加载时间太长,我想更好地管理它。
我可以使用update.php
.....但不确定参数是什么。
我考虑过使用update和no-index子句加载所有数据......然后可能构建索引??
我确实尝试为第二个文件重新运行setup.php
,但它只挂了很长时间
对于第二个文件
./utils/setup.php --import-data --osm-file file2.osm --osm2pgsql-cache 4000
但这只是挂在Setting up table: planet_osm_ways
上。 (我测试了非常小的OSM文件,应该在几分钟内完成,但它只是挂起)。
我使用的文件都是非交叉的,因此不是真正的更新。所以我有一个北美和南美......我如何分别加载到Nominatim。
由于
答案 0 :(得分:2)
答案可以在help.openstreetmap.org找到。
首先,您需要通过更新脚本导入它:./utils/update.php --import-file <yourfile>
。然后,您需要触发数据的重新索引:./utils/update.php --index
但根据lonvia(Nominatim开发人员之一),这将非常缓慢,如果先将所有文件合并,然后将其作为一个大文件导入,则会更好。
答案 1 :(得分: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的更多信息 - &gt; 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 ?