之前有需求需要對城市定位做處理
這裏簡單的寫了一個方法,可以直觀的把地址轉換爲座標,並且實現城市的定位,方法裏面直接傳入城市名 --------- 直接上碼
//切換城市
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);
}