Google Places Api Android
问题描述:
我在寻找某些东西,我需要传递我当前的位置详细信息(经度和纬度)并检索当前位置的类型。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();
谢谢你们提前。
答
谷歌应该返回我的地点类型。参观getPlacesTypes()
List<Integer> types = placeLikelihood.getPlace().getPlaceTypes();
但在这里它返回的地方列表,而不是一个
这是显而易见的同一位置也可以与其他地方。检查@ cricket_007评论。
happyCoding;
put代码mGoogleApiClient –
Places API是否仅提供已知地址的信息?比如,它会告诉你,如果你在银行,并且还要返回所有附近的地方,但是没有办法知道像ATM这样的地方的“类型”。例如,如果您在商场内,则可能会显示商场名称,而不是您所在的商店 –
getCurrentPlace方法返回地点列表,因为Places API无法确定用户当前处于哪个位置。这就是为什么每个地方都有一个“可能性”。这种可能性表明Places API对您实际上处于特定位置的信心有多大。名单中的第一名将是最有可能的。如果你只想考虑一个地方,只要看看列表中的第一个地方。 –