Nominatim 服务是一个地理编码(Geocoding)和逆地理编码(Reverse Geocoding)服务。

简单来说:

地址 → 经纬度:叫地理编码(Geocoding)
经纬度 → 地址:叫逆地理编码(Reverse Geocoding)

Nominatim 就是专门干这个的。


  1. 准备相关的目录和文件,其中china-latest.osm.pbf是之前下载过的

    mkdir -p /var/www/html/osm/nominatim && cd /var/www/html/osm/nominatim && cp ../china-latest.osm.pbf ./
    
  2. 导入数据并运行(导入数据需要较长时间,所以运行下面命令后无法立即访问,可以docker log nominatim -f来看导入的进度)

    docker run --name nominatim -e PBF_PATH=/nominatim/data/china-latest.osm.pbf -e IMPORT_STYLE=full -p 9081:8080 -v /var/www/html/osm/nominatim:/nominatim/data -d mediagis/nominatim:5.1
    
  3. 测试结果

    状态

    http://你的IP:9081/status.php

    测试反向地理编码(坐标 → 地址)

    http://你的IP:9081/reverse?lat=39.9042&lon=116.4074&format=json

    测试正向搜索(地址 → 坐标)

    http://你的IP:9081/search?q=xxx&format=json