4

我需要弄清楚将多个 OSM 文件加载到 Nominatim 数据库中的过程。我已经完成了所有设置,并且可以毫无问题地加载单个文件。

基本上我想要做的只是为世界的一部分加载一些 GeoFabrik OSM 文件。所以我正在抓取北美和南美的 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 中。

谢谢

4

2 回答 2

3

可以在help.openstreetmap.org找到答案。

首先,您需要通过更新脚本导入它:./utils/update.php --import-file <yourfile>. 然后您需要触发数据的重新索引:./utils/update.php --index

但根据lonvia(Nominatim 开发人员之一)的说法,这将非常慢,如果您先合并所有文件,然后将其作为一个大文件导入,则效果会更好。

于 2014-04-10T07:43:12.090 回答
3

合并代码示例,合并安道尔、马耳他和列支敦士登,

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 ?
于 2018-05-01T06:21:37.883 回答