项目里遇到了这样的需求,话不多说,直接上代码。
private void getLatlon(String cityName){
GeocodeSearch geocodeSearch=new GeocodeSearch(context);
geocodeSearch.setOnGeocodeSearchListener(new GeocodeSearch.OnGeocodeSearchListener() {
@Override
public void onRegeocodeSearched(RegeocodeResult regeocodeResult, int i) {
}
@Override
public void onGeocodeSearched(GeocodeResult geocodeResult, int i) {
if (i==1000){
if (geocodeResult!=null && geocodeResult.getGeocodeAddressList()!=null &&
geocodeResult.getGeocodeAddressList().size()>0){
GeocodeAddress geocodeAddress = geocodeResult.getGeocodeAddressList().get(0);
double latitude = geocodeAddress.getLatLonPoint().getLatitude();//纬度
double longititude = geocodeAddress.getLatLonPoint().getLongitude();//经度
String adcode= geocodeAddress.getAdcode();//区域编码
Log.e("地理编码", geocodeAddress.getAdcode()+"");
Log.e("纬度latitude",latitude+"");
Log.e("经度longititude",longititude+"");
}else {
ToastUtils.show(context,"地址名出错");
}
}
}
});
GeocodeQuery geocodeQuery=new GeocodeQuery(cityName.trim(),"29");
geocodeSearch.getFromLocationNameAsyn(geocodeQuery);
}