Android開發筆記-由GPS取得地址

內容說明:透過GPS資訊或經緯度取得地址

資料來源:Android 2.X應用程式開發經典

在「GPS與網路定位」中已經有說明如何取得GPS與經緯度資訊了,透過經緯度可以更進一步取得可能的地址。取得地址的方法很簡單,只要加入下面的程式,回傳的字串即是地址。不過要注意一點的是,這段程式碼在Android 8 以上模疑器測式會抓不到東西,目前用手機Android 2.3則是可以看到結果。如果撰寫的程式是 API 9 以上的話,可以加入註解的語法。程式碼如下:

public String getAddressByLocation(Location location) {
        String returnAddress = "";
        try {
            if (location != null) {
                    Double longitude = location.getLongitude(); //取得經度
                    Double latitude = location.getLatitude();   //取得緯度

                    //建立Geocoder物件: Android 8 以上模疑器測式會失敗
                    Geocoder gc = new Geocoder(this, Locale.TRADITIONAL_CHINESE);   //地區:台灣
                    //自經緯度取得地址
                    List

lstAddress = gc.getFromLocation(latitude, longitude, 1); //List
lstAddress = lstAddress = gc.getFromLocationName("地址", 3); //輸入地址回傳Location物件 // if (!Geocoder.isPresent()){ //Since: API Level 9 // returnAddress = "Sorry! Geocoder service not Present."; // } returnAddress = lstAddress.get(0).getAddressLine(0); } } catch(Exception e) { e.printStackTrace(); } return returnAddress; }
<p>
  這裡輸入的是 <a href="http://developer.android.com/reference/android/location/Location.html" target="_blank">Location 物件</a>,也可以按需要改成 GeoPoint 或直接傳入經緯度。回傳的字串就是地址了。
</p>