2016-06-13 264 views
3

我在尋找某些東西,我需要傳遞我當前的位置詳細信息(經度和緯度)並檢索當前位置的類型。Google Places Api Android

例如,如果我站在自動櫃員機,並且如果我傳遞經緯度,Google應該返回類似於ATM的東西。

爲此,我使用Google Places API

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi 
.getCurrentPlace(mGoogleApiClient, null); 
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() { 
@Override 
public void onResult(PlaceLikelihoodBuffer likelyPlaces) { 
for (PlaceLikelihood placeLikelihood : likelyPlaces) { 
    Log.i(TAG, String.format("Place '%s' has likelihood: %g", 
     placeLikelihood.getPlace().getName(), 
     placeLikelihood.getLikelihood())); 
} 
likelyPlaces.release(); 
} 
}); 

這是代碼的主要焦點。

但是這裏它返回的地方而不是一個地方的名單。 我認爲,內部getCurrentPlace函數PlaceDetectionApi我應該通過半徑而不是null。但我沒有得到如何通過它。 而我的GoogleApiClient對象是

mGoogleApiClient = new GoogleApiClient.Builder(this) 
       .addConnectionCallbacks(this) 
       .addOnConnectionFailedListener(this) 
       .addApi(LocationServices.API) 
       .addApi(Places.GEO_DATA_API) 
       .addApi(Places.PLACE_DETECTION_API) 
       .enableAutoManage(this, this) 
       .build(); 

謝謝你們提前。

+0

put代碼mGoogleApiClient –

+0

Places API是否僅提供已知地址的信息?比如,它會告訴你,如果你在銀行,並且還要返回所有附近的地方,但是沒有辦法知道像ATM這樣的地方的「類型」。例如,如果您在商場內,則可能會顯示商場名稱,而不是您所在的商店 –

+1

getCurrentPlace方法返回地點列表,因爲Places API無法確定用戶當前處於哪個位置。這就是爲什麼每個地方都有一個「可能性」。這種可能性表明Places API對您實際上處於特定位置的信心有多大。名單中的第一名將是最有可能的。如果你只想考慮一個地方,只要看看列表中的第一個地方。 –

回答

1

要獲得大氣壓的名單,這是谷歌官方link獲得接近位置的ATM列表

點擊位置鍵入谷歌會給你輸入參數的地方型,有你有通過以下從列表中的參數。要知道參數列表點擊此link

+0

感謝您的建議,但我只提到ATM作爲示例, 我不知道用戶的當前地點類型。一旦通過經緯度,它應該返回類型 –

+0

@JayVyas請檢查此示例,您將得到您的答案http://karnshah8890.blogspot.in/2013/03/google-places-api-tutorial.html –

+0

@JayVyas如果你已經得到你的答案,那麼請接受答案,以便其他人也可以從中獲得幫助 –

1

谷歌應該返回我的地點類型。參觀getPlacesTypes()

List<Integer> types = placeLikelihood.getPlace().getPlaceTypes(); 

但在這裏它返回的地方列表,而不是一個

這是顯而易見的同一位置也可以與其他地方。檢查@ cricket_007評論。

happyCoding;