首页 > 其他分享 >在docker中搭建nominatim服务

在docker中搭建nominatim服务

时间:2023-05-06 11:15:41浏览次数:54  
标签:nominatim de https org docker 下载 搭建

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/

标签:nominatim,de,https,org,docker,下载,搭建
From: https://www.cnblogs.com/tarantino/p/17376635.html

相关文章

  • 使用MASA全家桶从零开始搭建IoT平台(二)设备注册
    前言我们不希望任何设备都可以接入我们的IoT平台,所以一个设备正常的接入流程是这样的,1、上位机软件通过串口或其他方式读取设备的唯一标识码UUID。2、上位机调用IoT后台接口,发送UUID和ProductID。3、后台接口判断设备是否注册过,如果没有注册过,就根据ProductID并按照一定规律生......
  • 关于docker的/etc/docker/key.json文件说明
    对于刚安装完docker,是没有/etc/docker/key.json这个文件的,也不会有/etc/docker/目录 但是当我们启动或者重启docker后,就会自动创建上面的目录,以及生成/etc/docker/key.json文件[root@qq-5201351~]#systemctlrestartdocker关于/etc/docker/key.json这个文件,有如下几......
  • Linux下搭建Python2.7环境
    Python(英语发音:/ˈpaɪθən/),是一种面向对象、解释型计算机程序设计语言,由1989年底发明。python具有简单、易学、免费、开源、可移植性、解释性、可嵌入性等特点,是一种不受局限、跨平台的开源编程语言,它功能强大且简单易学,因而得到了广泛应用和支持。1.Python下载Pyt......
  • dockerfile 多FROM
    Docker17.05版本以后,新增了Dockerfile多阶段构建。所谓多阶段构建,实际上是允许一个Dockerfile中出现多个 FROM 指令。这样做有什么意义呢?老版本Docker中为什么不支持多个FROM指令在17.05版本之前的Docker,只允许Dockerfile中出现一个FROM指令,这得从镜像的本质说起。在《Do......
  • docker mysql error 1045 using password:yes
     错误截图  解决办法 找到mysql配置文件my.cnf 没有映射的话需要进入到MySQL的容器中找到/etc/下my.cnf文件在my.cnf中[mysqld]下添加skip-grant-tables容器里不能直接修改文件,需要安装相应的vim。下面通过dockercp拷贝文件进行修改#将容器中的文件拷贝......
  • 怎么搭建web组态
    web组态是指通过可视化拖拽组件的方式,低代码搭建监控大屏、web页面。物联网各行业的数据以及监控场景,每个行业的业务不同,需要展示的页面也不同。组态快速搭建页面的优势,能更好的满足不同定制化监控页面的需求。BY组态软件,专注于能源电力、工业互联网、智能制造、原型设计等领域......
  • 怎么搭建web组态
    Web组态是指通过可视化拖拽组件的方式,低代码搭建监控大屏、web页面。物联网各行业的数据以及监控场景,每个行业的业务不同,需要展示的页面也不同。组态快速搭建页面的优势,能更好的满足不同定制化监控页面的需求。BY组态软件,专注于能源电力、工业互联网、智能制造、原型设计等领域的......
  • 力扣vscode刷题环境搭建
    1.安装nodejs环境https://nodejs.cn/download/2.vscode下载leetcode插件3.配置插件配置以上2项后重启vscode4.登录leetcode账号......
  • Docker(容器)理论总结
    一.什么是Dockerhttps://www.docker.com/Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口2.Docker解决依......
  • docker安装openldap
    项目地址https://github.com/osixia/docker-openldap服务器安装获取相关镜像dockerpullosixia/openldapdockerpullosixia/phpldapadmin部署dockerrun-d-p389:389-p636:636-v/usr/local/ldap:/usr/local/ldap-v/data/openldap/ld......