2016-06-13 209 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;