地理编码与逆地理编码 最后更新时间: 2021年01月22日
本章主要介绍如何将地址描述信息和地理坐标做相互转化,主要包括以内容:
- 正向地理编码
- 逆向地理编码
地理编码服务
地理编码包含正向地理编码和逆向地理编码两种:
- 正向地理编码: 将地址描述信息转换成地理坐标(经纬度),对应为
AMap.Geocoder
的getLocation
方法 - 逆向地理编码:将地理坐标(经纬度)转换成地址描述信息,对应为
AMap.Geocoder
的getAddress
方法
高德JS API提供AMap.Geocoder
服务插件来完成这两种编码,创建地理编码对象的代码如下:
AMap.plugin('AMap.Geocoder', function() {
var geocoder = new AMap.Geocoder({
// city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
city: '全国'
})
// 使用geocoder做地理/逆地理编码
})
正向地理编码方法
AMap.Geocoder
的getLocation
方法用于实现正向地理编码,假如您想获取北京市海淀区苏州街的坐标信息,可以这样使用:
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
的getAddress
方法用于实现逆向地理编码,假如您希望获取坐标对应的地址信息,请使用getAddress
方法:
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的需求,该组件也提供了相应的接口。
关于该组件更多详细信息,请查看选址组件的 参考手册。