逆地理服务 Nominnatim

/ 中间件 / 121浏览

Nominatim(全称:Name to Address)是一款基于OpenStreetMap(OSM)数据的开源地理编码工具,简单来说就是能把“地名”转换成具体的经纬度坐标,也能反过来把经纬度转换成对应的地址信息,是地理信息领域常用的基础工具之一。它由OpenStreetMap社区维护,完全免费且开放源代码。

数据下载

http://download.openstreetmap.fr/extracts/asia/china/

安装部署

docker run -it 
-e PBF_PATH=/nominatim/data/hainan-latest.osm.pbf 
-e IMPORT_STYLE=address 
-p 8080:8080 
-p 5433:5432 
-v /nominatim/data:/nominatim/data 
--name nominatim 
mediagis/nominatim:4.2

API应用

https://nominatim.org/release-docs/develop/api/Overview/

正向地理编码

输入地址文本,获取对应的经纬度和详细地址信息。

示例请求

https://nominatim.openstreetmap.org/search?q= 上海市浦东新区银城中路501号&format=json&addressdetails=1&accept-language=zh&limit=1

result

[
  {
    "place_id": 123456,
    "lat": "31.2304",
    "lon": "121.5090",
    "display_name": "上海中心大厦, 银城中路, 陆家嘴街道, 浦东新区, 上海市, 200120, 中国",
    "address": {
      "building": "上海中心大厦",
      "road": "银城中路",
      "suburb": "陆家嘴街道",
      "city_district": "浦东新区",
      "city": "上海市",
      "postcode": "200120",
      "country": "中国",
      "country_code": "cn"
    }
  }
]

逆向地理编码

输入经纬度坐标,获取对应的地址信息。

示例请求

https://nominatim.openstreetmap.org/reverse?lat=31.2304&lon=121.5090&format=json&addressdetails=1&accept-language=zh 

result

{
  "place_id": 123456,
  "lat": "31.2304",
  "lon": "121.5090",
  "display_name": "上海中心大厦, 银城中路, 陆家嘴街道, 浦东新区, 上海市, 200120, 中国",
  "address": {
    "building": "上海中心大厦",
    "road": "银城中路",
    "suburb": "陆家嘴街道",
    "city_district": "浦东新区",
    "city": "上海市",
    "postcode": "200120",
    "country": "中国",
    "country_code": "cn"
  }
}