前言
本章內容是android.location.GeoCoder,為GPS相關章節,版本為Android 4.0 r1,翻譯來自"熊貓82",歡迎訪問他的部落格:"http://wisekingokok.cnblogs.com",再次感謝"熊貓82"!歡迎你一起參與Android的中文翻譯,聯絡我over140@gmail.com。
聲明
歡迎轉載,但請保留文章原始出處:)
部落格園:http://www.cnblogs.com/
Android中文翻譯組:http://goo.gl/6vJQl
Geocoder
譯者署名:熊貓82
譯者連結:http://wisekingokok.cnblogs.com
版本:Android 4.0 r1
結構
繼承關係
public final class Geocoder extends Object
java.lang.Object
android.location.Geocoder
類概述
一個處理前向地理編碼和反向地理編碼的類。地理編碼是一個街道、地址或者其他位置(經度、緯度)轉化為座標的過程。反向地理編碼是將座標轉換為地址(經度、緯度)的過程。一組反向地理編碼結果間可能會有所差異。例如:一個結果可能包含最臨近建築的完整街道地址,而另一個可能只包含城市名稱和郵遞區號。Geocoder要求的後端服務並沒有包含在基本的Android架構中。如果沒有此後端服務,執行Geocoder的查詢方法將返回一個空列表。使用isPresent()方法,以確定Geocoder是否能夠正常執行。
公用構造器
public Geocoder(Context context, Local local)
根據給定的語言環境構造一個Geocoder對象。
參數
context 當前的內容物件。
local the 當前語言環境
public Geocoder(Context context)
根據給定的系統預設語言環境構造一個Geocoder對象。
參數
context 當前的內容物件。
公用方法
public List<Address> getFromLocation(double latitude, double longitude, int maxResults)
根據給定的經緯度返回一個描述此地區的地址數組。返回的地址將根據構造器提供的語言環境進行本地化。
傳回值有可能是通過網路擷取。返回結果是一個最好的估計值,但不能保證其完全正確。
參數
latitude 緯度
longitude 經度
maxResults 要返回的最大結果數,推薦1~5
傳回值
一組地址對象。如果沒找到匹配項,或者後台服務無效的話則返回null或者空序列。
異常
IllegalArgumentException 緯度小於-90或者大於90
IllegalArgumentException 果經度小於-180或者大於180
IOException 如果沒有網路或者IO錯誤
public List<Address> getFromLocationName(String locationName, int maxResults, double lowerLeftLatitude, double lowerLeftLongitude, double upperRightLatitude, double upperRightLongitude)
返回一個由給定的位置名稱參數所描述的地址數組。名稱參數可以是一個位置名稱,如:“Dalvik, Iceland”,一個地址,如:“1600 Amphitheatre Parkway, Mountain View, CA”,一個機場代號,如:“SFO”,等等……返回的地址將根據構造器提供的語言環境進行本地化。
你也可以指定一個搜尋邊界框,該邊界框由左下方座標經緯度和右上方座標經緯度確定。
傳回值有可能是通過網路擷取。返回結果是一個最好的估計值,但不能保證其完全正確。通過UI主線程的後台線程來調用這個方法可能更加有用。
參數
locationName 使用者提供的位置描述
maxResults 要返回的最大結果數,推薦1~5
lowerLeftLatitude 左下角緯度,用來設定矩形範圍
lowerLeftLongitude 左下角經度,用來設定矩形範圍
upperRightLatitude 右上方緯度,用來設定矩形範圍
upperRightLongitude 右上方經度,用來設定矩形範圍
傳回值
一組地址對象。如果沒找到匹配項,或者後台服務無效的話則返回null或者空序列。
異常
IllegalArgumentException 如果位置描述為空白
IllegalArgumentException 如果緯度小於-90或者大於90
IllegalArgumentException 如果經度小於-180或者大於180
IOException 如果沒有網路或者IO錯誤
public List<Address> getFromLocationName(String locationName, int maxResults)
返回一個由給定的位置名稱參數所描述的地址數組。名稱參數可以是一個位置名稱,如:“Dalvik, Iceland”,一個地址,如:“1600 Amphitheatre Parkway, Mountain View, CA”,一個機場代號,如:“SFO”,等等……返回的地址將根據構造器提供的語言環境進行本地化。
傳回值有可能是通過網路擷取。返回結果是一個最好的估計值,但不能保證其完全正確。
通過UI主線程的後台線程來調用這個方法可能更加有用。
參數
locationName 使用者提供的位置描述
maxResults 要返回的最大結果數,推薦1~5.
傳回值
一組地址對象。如果沒找到匹配項,或者後台服務無效的話則返回null或者空序列。
異常
IllegalArgumentException 如果位置描述為空白
IOException 如果沒有網路或者IO錯誤
public static boolean isPresent ()
如果Geocoder的getFromLocation和getFromLcationName都實現了則返回true,沒有網路連接這些方法仍然可能返回空或者空序列。
補充
文章精選
Android地圖開發中的地理編碼與地理反編碼
Android地圖和定位學習總結