無意間在StackOverFlow上逛到這篇文章...才知道原來這東西那麼好用!
簡單說:Android預設的物件GeoCoder(點擊可以轉到API)其實就可以幫設計師快速的把這個動作完成!
詭異的是我遲遲沒有找到相關的標準範例!結果原來是因為Google Guide教程中,關於「如何取得GPS座標」的部分已經轉換成使用GoogleApiClient,但後續取得地址的部分...雖然GoogleApiClient也有相關功能,可是在Google Guide中卻還是使用GoeCoder!
(只能說:習慣就好...)
這個物件設計讓我看了要說「好用」的原因...
第一,它直接使用座標,而不是相關系列的物件!
第二,承接第一點,這表示它不需要申請金鑰!在註冊功能上會省去很多手續。(但其實最新的Google Place API For Android在註冊上也很簡單!並沒有多複雜!)
第三,JavaScript的地址查詢API回傳的JSON資料結構非常複雜!
第四,跟Google Place API For Android相比,它可以完全適應自己設計的Thread。因為Google Place API需要使用CallBack,而且如果只是單純的地址查詢,Google Place API並不「精準」,會獲得很多無關的資訊。
補充說明:在Google Place API For Android中獲得PlaceID的方法。
其實就是額外使用JavaScriptAPI去獲得JSON資料而已!
目前這段功能顯然還未有完整物件化。
簡單說:Android預設的物件GeoCoder(點擊可以轉到API)其實就可以幫設計師快速的把這個動作完成!
詭異的是我遲遲沒有找到相關的標準範例!結果原來是因為Google Guide教程中,關於「如何取得GPS座標」的部分已經轉換成使用GoogleApiClient,但後續取得地址的部分...雖然GoogleApiClient也有相關功能,可是在Google Guide中卻還是使用GoeCoder!
(只能說:習慣就好...)
這個物件設計讓我看了要說「好用」的原因...
第一,它直接使用座標,而不是相關系列的物件!
List<Address> addresses = null; try { addresses = geocoder.getFromLocation( location.getLatitude(), location.getLongitude(), 1); } catch (IOException ioException) { // Catch network or other I/O problems. } catch (IllegalArgumentException illegalArgumentException) { } }(其他時候,Google Guide的範例程式碼很繁雜!但這篇的卻是相較之下精簡,而我上面貼的這段是更精簡。因為這個功能並不需要多做無謂的說明...)
第二,承接第一點,這表示它不需要申請金鑰!在註冊功能上會省去很多手續。(但其實最新的Google Place API For Android在註冊上也很簡單!並沒有多複雜!)
第三,JavaScript的地址查詢API回傳的JSON資料結構非常複雜!
第四,跟Google Place API For Android相比,它可以完全適應自己設計的Thread。因為Google Place API需要使用CallBack,而且如果只是單純的地址查詢,Google Place API並不「精準」,會獲得很多無關的資訊。
補充說明:在Google Place API For Android中獲得PlaceID的方法。
其實就是額外使用JavaScriptAPI去獲得JSON資料而已!
目前這段功能顯然還未有完整物件化。