2014-02-06 33 views
2

我想獲得多個緯度/經度的地址,有沒有辦法在一個請求中做到這一點?從多個緯度/經度獲取多個地址

我可以使用此代碼一個位置的地址:

try { 
Geocoder geocoder; 
List<Address> addresses; 
geocoder = new Geocoder(MainActivity.this, Locale.getDefault()); 
addresses = geocoder.getFromLocation(Double.parseDouble(latitude), Double.parseDouble(longitude), 1); 
String address = addresses.get(0).getAddressLine(0); 
Log.i("adresse :", address); 
} catch (IOException e) { 
    Log.e("tag", e.getMessage()); 
    } 

任何幫助,請。

回答

1

製作一個方法,將它傳遞到座標列表LatLngs並循環遍歷已有的代碼。

+0

我的問題是:我想使用谷歌(getlocationfrom)的服務一次,獲取多個座標的數據,有沒有什麼辦法可以發送座標列表並獲得結果在一次 – Abdel

1

簡短的回答是API不支持每個請求的多個位置。

長久的回答是,Google設計了Geocoder API,以便客戶端在用戶端進行地理編碼時不會耗盡請求限制。見following quote from this FAQ:

當使用客戶端地理

基本的答案是「幾乎總是」。由於地理編碼限制是針對每個用戶的會話,所以在用戶基數增長的情況下,您的應用程序無限制地達到全球限額 。除非您在 用戶會話中執行一批地理編碼請求,否則客戶端地理編碼將不會面臨 配額限制。因此,運行客戶端地理編碼時,您通常不需要擔心配額。

存在兩種用於客戶端地理編碼的基本體系結構。

運行地理編碼並完全在瀏覽器中顯示。例如, 用戶在您的頁面上輸入地址。您的應用程序將其地理編碼。 然後你的頁面使用地理編碼在地圖上創建一個標記。或者你的 應用程序使用地理編碼進行一些簡單的分析。沒有數據發送到您的服務器的 。這可以減少服務器上的負載,但不會讓您對用戶的行爲產生任何影響。

在瀏覽器中運行地理編碼,然後將其發送到服務器。對於 實例,用戶輸入地址。您的應用程序將其編碼爲 瀏覽器。該應用程序然後將數據發送到您的服務器。服務器 響應一些數據,如附近的興趣點。這 允許您根據您自己的數據自定義響應,並且如果需要,還可以將 緩存地理編碼。這個緩存允許你甚至優化更多的 。你甚至可以用這個地址查詢服務器,看你最近緩存的地理編碼是否有 ,如果你有,請使用它。如果你的 沒有,那麼沒有結果返回給瀏覽器,並讓它對地址結果進行地址解析並將其發送回服務器進行緩存。

有關地理編碼請求限制的更多詳細信息,請參閱see this URL

+0

那麼請問什麼是解決方案,因爲我有很多座標,我怎麼才能快速獲取地址 – Abdel