地址解析服务提供从地址转换到经纬度的服务,反之,逆地址解析则提供从经纬度坐标转换到地址的转换功能。

Geocoder:逆/地址解析,用于坐标与地址间的相互转换。详情见类参考
根据地址描述获得坐标信息。
百度地图API提供Geocoder类进行地址解析,您可以通过Geocoder.getPoint()方法来将一段地址描述转换为一个坐标。
如下示例,我们将地址“北京市海淀区上地10街10号”转换获取该位置的地理经纬度坐标,并在这个位置上添加一个标注。注意:在调用Geocoder.getPoint()方法时您需要提供地址解析所在的城市(本例为“北京市”)。
var map = new BMap.Map("l-map");map.centerAndZoom(new BMap.Point(116.404,39.915),11);// 创建地址解析器实例var myGeo = new BMap.Geocoder();// 将地址解析结果显示在地图上,并调整地图视野myGeo.getPoint("北京市海淀区上地10街10号", function(point) {if (point) {map.centerAndZoom(point,16);map.addOverlay(new BMap.Marker(point));}}, "北京市");
根据坐标点获得该地点的地址描述,是地址解析的逆向转换。
您可以通过Geocoder.getLocation()方法获得地址描述。当解析工作完成后,您提供的回调函数将会被触发。如果解析成功,则回调函数的参数为GeocoderResult对象,否则为null。
在构造Geocoder对象时,可以增加参数{extensions_town: true}来获得乡镇级数据,仅限国内。
var map = new BMap.Map("l-map");map.centerAndZoom(new BMap.Point(116.404,39.915), 11);// 创建地理编码实例, 并配置参数获取乡镇级数据var myGeo = new BMap.Geocoder({ extensions_town: true });// 根据坐标得到地址描述myGeo.getLocation(new BMap.Point(116.364,39.993), function(result) {if (result) {alert(result.address);}});
var map = new BMap.Map("allmap");var point = new BMap.Point(116.331398, 39.897445);map.centerAndZoom(point, 12);var geoc = new BMap.Geocoder();map.addEventListener("click", function(e) {var pt = e.point;geoc.getLocation(pt, function(rs) {var addComp = rs.addressComponents;alert(addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber);});});
上一篇
下一篇
本篇文章对您是否有帮助?