AMap.Geocoder 地理编码与逆地理编码服务,用于地址描述与坐标间的相互转换
AMap.convertFrom坐标转换接口,支持将坐标点从其他坐标系转换为高德坐标系
2.AMap.Geocoder地理编码与逆地理编码类,用于地址描述与坐标之间的转换。用户可以通过自定义回调函数取回并显示查询结果。若服务请求失败,系统将返回错误信息。
相关示例
首先我们来看一下地理编码getlocation这个方法的用法,他有两个参数,一个是用来做状态的,另一个是用来信息处理的。通过GeocodeResult我们就可以获取到我们所要的坐标,所属类型了,如下示例:
function geocoders() {
map.plugin(["AMap.Geocoder","AMap.convertFrom"], function () {
geocoder =new AMap.Geocoder({
city: "全国", //城市,默认:“全国”
radius: 1000
})
//地理编码,返回地理编码结果
geocoder.getLocation("珠海市香洲区唐家湾镇南方软件园b6", function(status, result) {
if (status === 'complete' && result.info === 'OK') {
geocoder_CallBack(result);
}
});
});
}
//地理编码返回结果展示
function geocoder_CallBack(data) {
//地理编码结果数组
var geocode = data.geocodes;
for (var i = 0; i < geocode.length; i++) {
console.log('地址'+geocode[i].formattedAddress);
console.log('的地理编码结果坐标是'+geocode[i].location.getLng()+","+geocode[i].location.getLat()+"匹配级别"+geocode[i].level);
}
map.setFitView();
}
以上示例演示了如何获取我们所要的结果集,我们再来看看逆地理编码,也就是通过地理位置坐标获取我们所需要的地理信息geocoder.getAddress
<script type="text/javascript">
var geocoder;
var map = new AMap.Map('container', {
resizeEnable: true,
});
function geocoders() {
map.plugin(["AMap.Geocoder","AMap.convertFrom"], function () {
geocoder =new AMap.Geocoder({
city: "全国", //城市,默认:“全国”
radius: 1000,
extensions: "all"
})
var center = map.getCenter();
//地理编码,返回地理编码结果
geocoder.getAddress(center, function(status, result) {
if (status === 'complete' && result.info === 'OK') {
geocoder_CallBack(result);
}
});
var marker = new AMap.Marker({ //加点
map: map,
position: center
});
map.setFitView();
});
}
function geocoder_CallBack(data) {
var address = data.regeocode.formattedAddress; //返回地址描述
console.log('地址'+address);
}
//地理编码返回结果展示
</script>
AMap.convertFrom坐标转换接口,支持将坐标点从其他坐标系转换为高德坐标系
若我们传过来的位置坐标不是高德的,则我们需要做相应的转换。如下
map.plugin(["AMap.Geocoder","AMap.convertFrom"], function () {
geocoder =new AMap.Geocoder({
city: "全国", //城市,默认:“全国”
radius: 1000
})
var center = map.getCenter();
var converts = new AMap.convertFrom(center,"gps",function(info,result){
console.log(result.locations)
})
)}