用到的api为reverseGeocode(latlng);但是使用这个api返回的地名只到县这个级别的单位.如果要获得乡,村一级的单位需要自己做处理,我目前的处理方法是获得县,然后从自己的数据库中取出县所辖所有乡村的坐标,计算后确定地名.代码片段如下:
public function onmyclick(event:MapMouseEvent):void
{
var geocoder:ClientGeocoder = new ClientGeocoder();
var p:LatLng = event.latLng;
geocoder.reverseGeocode(event.latLng);//反解坐标
//添加解析响应事件
geocoder.addEventListener(
GeocodingEvent.GEOCODING_SUCCESS,
function(event:GeocodingEvent):void {
output.text = ObjectUtil.toString(event.response);
var placemarks:Array = event.response.placemarks;
if (placemarks.length > 0) {
var placemark:Object = placemarks[0];
cityname = ObjectUtil.toString(placemark.AddressDetails.Country.AdministrativeArea.Locality.LocalityName).replace("/"","");
cityname = cityname.replace("/"","");
if(map.getZoom()<11)
{
map.setCenter(placemark.point);
createMarker(placemark.point);
if(cityname!="")
city_name.text = cityname;
webService1.getImageBybyte.send(cityname);
}
else
{
webService1.getNearByCity.send(cityname,p.lat(),p.lng());
}
}
city_name.text = cityname;
});
}