地理編碼:即地址解析,由詳細到街道的結構化地址得到百度經緯度信息。
逆地理編碼:即逆地址解析,由百度經緯度信息得到結構化地址信息。
然後鄙視一下百度地圖api文檔的作者,文檔的功能介紹太少了吧,而且這個功能都沒說,爲什麼web的api功能介紹那麼多。。。
這個可以選擇使用web的接口獲取結果也可以使用百度jar裏的方法獲取。
web:這裏可以點擊 -->web的鏈接。
jar:1.下載百度的jar包,需要包含搜索那塊功能。
2.搜索的類叫GeoCoder 路徑是com.baidu.mapapi.search.geocode.GeoCoder;
3.實現代碼:
GCSearch.geocode(new GeoCodeOption().city(
tvCityAddress.getText().toString()).address(searchEntry.getAddress()));
這個是地理解析,就是搜索地址得到經緯度。 ReverseGeoCodeOption reverseGeoCodeOption = new ReverseGeoCodeOption();
reverseGeoCodeOption.location(new LatLng(lat, lng));
GCSearch.reverseGeoCode(reverseGeoCodeOption);
這個是逆地理解析,就是通過經緯度獲取地址詳情。
GCSearch.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
@Override
public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) { //通過文字地址獲取到的座標回調
LatLng location = geoCodeResult.getLocation();
if (location == null) return;
setMap(location.latitude, location.longitude);
}
@Override
public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) { //通過座標獲取到地址信息的回調
tvAddressAddress.setText(reverseGeoCodeResult.getAddress());
}
});
搜索的結果。一共就發現了兩種實現方式,個人傾向於使用jar包的,反正jar包都導進來了,那麼大不用白不用。