高德地图 JS-地理编码与逆地理编码

高德地图 JS-地理编码与逆地理编码

本章主要介绍如何将地址描述信息和地理坐标做相互转化,主要包括以内容:

  1. 正向地理编码
  2. 逆向地理编码

地理编码服务

地理编码包含正向地理编码和逆向地理编码两种:

  • 正向地理编码: 将地址描述信息转换成地理坐标(经纬度),对应为AMap.GeocodergetLocation方法
  • 逆向地理编码:将地理坐标(经纬度)转换成地址描述信息,对应为AMap.GeocodergetAddress方法

高德JS API提供AMap.Geocoder服务插件来完成这两种编码,创建地理编码对象的代码如下:JavaScript

AMap.plugin('AMap.Geocoder', function() {
  var geocoder = new AMap.Geocoder({
    // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
    city: '全国'
  })

  // 使用geocoder做地理/逆地理编码
})

查看AMap.Geocoder的全部属性和方法

正向地理编码方法

AMap.GeocodergetLocation方法用于实现正向地理编码,假如您想获取北京市海淀区苏州街的坐标信息,可以这样使用:JavaScript

AMap.plugin('AMap.Geocoder', function() {
  var geocoder = new AMap.Geocoder({
    // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
    city: '010'
  })

  geocoder.getLocation('北京市海淀区苏州街', function(status, result) {
    if (status === 'complete' && result.info === 'OK') {
      // result中对应详细地理坐标信息
    }
  })
})

AMap.Geocoder

AMap.Geocoder地理编码与逆地理编码类,用于地址描述与坐标之间的转换。用户可以通过自定义回调函数取回并显示查询结果。若服务请求失败,系统将返回错误信息

相关示例

构造函数说明
AMap.Geocoder(opts:GeocoderOptions )构造函数,提供地理编码或逆地理编码功能
GeocoderOptions类型说明
cityString城市,地理编码时,设置地址描述所在城市可选值:城市名(中文或中文全拼)、citycode、adcode;默认值:“全国”
radiusNumber逆地理编码时,以给定坐标为中心点,单位:米取值范围:0-3000默认值:1000
langString设置语言类型
batchBoolean是否批量查询batch=true为批量查询,batch=false为单点查询,batch=false时即使传入多个点也只返回第一个点结果
extensionsString逆地理编码时,返回信息的详略默认值:base,返回基本地址信息;取值为:all,返回地址信息及附近poi、道路、道路交叉口等信息
方法返回值说明
getLocation(address:String,callback:function(status:String,result:info/GeocodeResult))
根据给定的地址描述进行解析,支持中文、拼音当status为complete时,result为GeocodeResult;当status为error时,result为错误信息info;当status为no_data时,代表检索返回0结果  相关示例
setCity(city:String)
地理编码时,设置地址描述所在城市
getAddress(location:LngLat|Array.<LngLat>,callback:function(status:String,result:info/ReGeocodeResult))
根据给定坐标进行解析当status为complete时,result为ReGeocodeResult;当status为error时,result为错误信息info;当status为no_data时,代表检索返回0结果批量逆地理编码时,最多支持20个坐标点,超过20个坐标点,按20处理  相关示例
事件参数说明
completeGeocoderResult当编码执行成功时触发此事件
errorErrorStatus当编码执行失败时触发此事件

逆向地理编码方法

AMap.GeocodergetAddress方法用于实现逆向地理编码,假如您希望获取坐标对应的地址信息,请使用getAddress方法:JavaScript

AMap.plugin('AMap.Geocoder', function() {
  var geocoder = new AMap.Geocoder({
    // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
    city: '010'
  })
 
  var lnglat = [116.396574, 39.992706]

  geocoder.getAddress(lnglat, function(status, result) {
    if (status === 'complete' && result.info === 'OK') {
        // result为对应的地理位置详细信息
    }
  })
})

UI组件-拖拽选址

拖拽选址组件PositionPicker,用于在地图上选取位置,并获取所选位置的地址信息,以及周边POI、周边道路、周边路口等信息。

该组件是基于AMap.Geocoder等插件实现,提供了拖拽地图选址和拖拽Marker选址两种模式供选用。如果有自定义UI的需求,该组件也提供了相应的接口。

关于该组件更多详细信息,请查看选址组件的 参考手册

1 1 投票
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x