之前有需求需要对城市定位做处理
这里简单的写了一个方法,可以直观的把地址转换为坐标,并且实现城市的定位,方法里面直接传入城市名 --------- 直接上码
//切换城市
private void getLatlon(String cityName) {
//构造 GeocodeSearch 对象,并设置监听。
GeocodeSearch geocodeSearch = new GeocodeSearch(getActivity());
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();//区域编码
LogUtils.e("地理编码", geocodeAddress.getAdcode() + "");
LogUtils.e("纬度latitude", latitude + "");
LogUtils.e("经度longititude", longititude + "");
LatLng lng = new LatLng(latitude, longititude);
aMap.moveCamera(CameraUpdateFactory.changeLatLng(lng));
} else {
ToastUtil.showToast(getActivity(),
"地址名出错");
}
}
}
});
GeocodeQuery geocodeQuery = new GeocodeQuery(cityName.trim(), "30000");
geocodeSearch.getFromLocationNameAsyn(geocodeQuery);
}