Google Places Api Android

我正在寻找一些东西,我需要传递我当前的位置详细信息(纬度和经度)并检索当前位置的类型 .

例如,如果我站在ATM上,如果我通过纬度和经度,谷歌应该返回类似 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();
}
});

这是代码的主要焦点 .

但在这里它返回的地方列表而不是一个 . 我认为, PlaceDetectionApi 的函数 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();

提前谢谢你们 .

回答(2)

2 years ago

要获得Atm List,这是谷歌官方link获取更近的位置列表

点击地方类型Google会为您提供地点类型的输入参数,您必须从列表中传递以下参数 . 知道参数列表点击这个link

2 years ago

谷歌应该返回我的地方类型 . 访问getPlacesTypes()

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

但在这里它返回的地方列表而不是一个

很明显,同一地点也可以与其他地方相关 . 查看@ cricket_007评论 .