概述
LBS地理编码的使用基于高德JS API提供的AMap.Geocoder服务插件
创建地理编码对象:
const AMap = (window as any).AMap
AMap.plugin('AMap.Geocoder', function() {
var geocoder = new AMap.Geocoder({
city: '全国' // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
})
// 使用geocoder做地理/逆地理编码
})
此示例为异步加载插件,异步加载指的是在 JS API 加载完成之后,在需要使用到某个插件的时候,通过AMap.plugin方法按需引入插件,在plugin回调之后使用插件功能。
如果想同时引入多个插件通过AMap.plugin的第一个参数使用数组即可
注:确保在页面加载完成再调用window.AMap,否则可能出现undefined的情况
正向地理编码
功能简介:将地址信息转换为经纬度
方法:AMap.Geocoder的getLocation方法
示例:
AMap.plugin('AMap.Geocoder', function() {
var geocoder = new AMap.Geocoder({
city: '010' // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
})
var address = '北京市海淀区苏州街';
geocoder.getLocation(address, function(status, result) {
if (status === 'complete' && result.info === 'OK') {
// result中对应详细地理坐标信息
}
})
})
地址信息支持对地标性名胜景区、建筑物名称解析为高德经纬度坐标。建筑最好包含省或市信息,可以避免解析到其他奇怪的位置。
逆向地理编码
功能简介:将经纬度转换为地址信息
方法:为AMap.Geocoder的getAddress方法
示例:
AMap.plugin('AMap.Geocoder', function() {
var geocoder = new AMap.Geocoder({
city: '010' // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
})
var lnglat = [116.396574, 39.992706]
geocoder.getAddress(lnglat, function(status, result) {
if (status === 'complete' && result.info === 'OK') {
// result为对应的地理位置详细信息
}
})
})