nominatim推荐配置(https://nominatim.org/release-docs/4.2/admin/Installation/#tuning-the-postgresql-database):
至少需要 2GB 的 RAM,否则安装将失败。对于完整的星球导入,强烈建议使用 128GB 或更多的 RAM。如果您的 RAM 小于 64GB,请不要报告内存不足问题。
对于完整的星球安装,您至少需要 1TB 的硬盘空间。考虑到 OSM 数据库正在快速增长。快速磁盘是必不可少的。建议使用 NVME 磁盘。
即使在一台配置良好的机器上,导入一个完整的行星也需要大约 2 天的时间。在传统的旋转磁盘上,7-8 天更为现实。
我用的配置:
win101909 | i9 10900 | 32G RAM | 1TB nvme
使用docker搭建,分配10个线程,12GB RAM,64G nvme硬盘
我仅导入了中国地图源文件共972MB,而完整地球的源文件有69GB,仅供各位参考
一、安装docker
1.官网下载https://www.docker.com/
2.安装
1)bios需要开启虚拟化技术
2)win10: 控制面板-》程序-》程序和功能-》启用或关闭windows功能-》开启hyper-v
ps:如果有安卓模拟器,可能安卓模拟器无法使用,该问题在win10 1909 docker v4.19.0上测试无问题
如果无法共用,解决办法是
只开docker时:bcdedit /set hypervisorlaunchtype auto
只开模拟器时:bcdedit /set hypervisorlaunchtype off
3)运行docker desktop installer.exe即可
4)其他:
建议更改docker镜像存储路径,实测导入完数据后容器体积非常大,不要放到系统盘
3.下载源数据osm.pbf文件
如果只下载某些大洲或某些国家,可以从https://download.geofabrik.de/index.html下载,国内直接访问,速度很快
如果你开了**工具,该链接可能被认为是国外的,使用proxy下载速度很慢,可以将geofabrik.de域名放到直连规则里
如果下载全部数据,地址为https://ftp5.gwdg.de/pub/misc/openstreetmap/planet.openstreetmap.org/pbf/planet-latest.osm.pbf(备用https://planet.openstreetmap.org/下载,需要**工具)
如我只下载中国数据,地址为:https://download.geofabrik.de/asia/china-latest.osm.pbf
二.导入数据
docker run -it \
-e PBF_PATH=PBF_PATH=/nominatim/data/china-latest.osm.pbf \
-e REPLICATION_URL=http://download.geofabrik.de/asia/china-updates/ \
-e IMPORT_STYLE=address \
-p 8081:8080 \
-p 5432:5432 \
-v d:/nominatim:/nominatim/data \
--name nominatim \
mediagis/nominatim:4.2
说明:
1)PBF_PATH参数可以用已经下载好的源文件,否则用PBF_URL=xx,就需要临时下载
2)REPLICATION_URL为更新文件,全球的地址为https://ftp5.gwdg.de/pub/misc/openstreetmap/planet.openstreetmap.org/replication/day/,可以不要,那么以后更新的数据都没有了
3)8080为nominatim的web api端口
4)5432为postgresql的数据库端口(其库名为nominatim,密码为qaIACxO6wMR3,具体可以看容器的日志)
5)将本地d:/nominatim映射到容器中/nominatim/data
三、使用服务(参考https://nominatim.org/release-docs/4.2/api/Overview/)
nominatim服务提供以下API:
/search - 按名称或类型搜索 OSM 对象
/reverse - 按位置搜索 OSM 对象
/lookup - 通过 ID 查找 OSM 对象的地址详细信息
/status - 查询服务器状态
/deletable - 列出已在 OSM 中删除但在 Nominatim 中保留以防意外删除的对象
/polygons - Nominatim 检测到的破碎多边形列表
/details - 显示对象的内部细节(仅用于调试)
如查地址对应经纬度:http://127.0.0.1:8081/search.php?q=天安门
如查经纬度对应地址:http://127.0.0.1:8081/reverse.php?lat=36.950008&lon=111.504257
本文参考:
https://www.cnblogs.com/nonkicat/p/17222677.html
https://github.com/mediagis/nominatim-docker/tree/master/4.2
https://nominatim.org/release-docs/4.2/