Android根據經緯度獲取地址

        Android地圖開發實際應用中,經常會通過地圖定位判斷手機用戶是哪個城市的,然後根據城市的不同調取不同的數據,或者是地圖定位之後,會在手機界面中顯示用戶的詳細位置,如石家莊市中山北國商城。

        那麼這些信息如何獲得?   詳細研究過Android MapView的可能用到Geocoder這個對象。詳細代碼如下:

       


  1. Geocoder geocoder=new Geocoder(this, Locale.getDefault());  
  2.                 try {  
  3.                     List<Address> addresses=geocoder.getFromLocation(latitude, longitude, 1);  
  4.                     StringBuilder stringBuilder=new StringBuilder();                      
  5.                     if(addresses.size()>0){  
  6.                         Address address=addresses.get(0);  
  7.                         for(int i=0;i<address.getMaxAddressLineIndex();i++){  
  8.                             stringBuilder.append(address.getAddressLine(i)).append("\n");                                                 
  9.                         }  
  10.                         stringBuilder.append(address.getLocality()).append("_");  
  11.                         stringBuilder.append(address.getPostalCode()).append("_");  
  12.                         stringBuilder.append(address.getCountryCode()).append("_");  
  13.                         stringBuilder.append(address.getCountryName()).append("_");  
  14.                         System.out.println(stringBuilder.toString());  
  15.                     }  
  16.                 } catch (IOException e) {  
  17.                     // TODO Auto-generated catch block   
  18.                     Toast.makeText(this"報錯", Toast.LENGTH_LONG).show();  
  19.                     e.printStackTrace();  
  20.                 }  

 

坑爹呀,怎麼執行都異常 ,真機測試還異常,  有說android 2.xx版本不能用,不管怎麼樣,這個不好用。

看谷歌另一種方法:

Google Geocoding API

,定會讓你眼前一亮。

 

詳細地址:http://code.google.com/intl/zh-CN/apis/maps/documentation/geocoding/

 

根據座標查找詳細信息,也就是本篇所說的,請看  反向地址解析(地址查詢)

請求地址:http://maps.google.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true  

注意座標 (緯度,經度)不要傳反了

經實例測試,發現兩個問題 1,讀取json很慢;2,返回地址信息是英文【有時頁面直接訪問是中文,模擬器中是英文】

解決辦法:

1,將請求地址:google.com 改爲 google.cn

2,在請求地址後邊再加一個參數language=zh-CN  [ 不知道爲什麼官網不給詳細一點 ]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章