1. 程式人生 > >Android 百度地圖api地理編碼與逆地理編碼

Android 百度地圖api地理編碼與逆地理編碼

    何為地理編碼?何為逆地理編碼?

地理編碼:即地址解析,由詳細到街道的結構化地址得到百度經緯度資訊。

逆地理編碼:即逆地址解析,由百度經緯度資訊得到結構化地址資訊。

然後鄙視一下百度地圖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包都導進來了,那麼大不用白不用。