最近在用高德地圖來寫Android App, 其中有一些 方法是不太理解的,這里寫一下 對 高德地圖 com.amap.api.location.AMapLocationClientOption 中的類 AMapLocationClientOption 中的 setNeedAddress 方法用處。
public AMapLocationClientOption mLocationOption = null;
//設置是否返回地址信息(默認返回地址信息)
mLocationOption.setNeedAddress(false);
lat = amapLocation.getLatitude();
lon = amapLocation.getLongitude();
Log.v("joe", "lat :-- " + lat + " lon :--" + lon);
Log.v("joe", "Country : " + amapLocation.getCountry() + " province : " + amapLocation.getProvince() + " City : " + amapLocation.getCity() + " District : " + amapLocation.getDistrict());
這里只給出了程序的部分代碼, 這里只為說明 setNeedAddress 的用法。
調試信息:

可以看到, 地址的具體信息打印不出來, 其實,這就是無法獲得地址信息,返回值為空。這里的地址信息為方法,
amapLocation.getCountry()
amapLocation.getProvince()
amapLocation.getCity()
amapLocation.getDistrict()
中所獲得的 具體地址信息。
進行如下設置,也就是設置選項,表示可以返回默認的地址信息:
//設置是否返回地址信息(默認返回地址信息) mLocationOption.setNeedAddress(true);
這時候的調試打印信息為如下:
可以看到這時候的 地址打印信息可以有真正的信息,此時返回信息不為空。
以下為個人觀點:
在地圖應用中如果打開地址信息返回的設置后其實是把定位好的信息,也就是經緯度再進行一次的解析,向服務器發送地址的經緯度信息,然后服務器返回該地方的所屬於的 具體地址信息。