PlaceFilter用于附近的谷歌地图api

时间:2016-03-14 11:19:25

标签: android google-maps-api-3

在一个代码中,我得到一个附近的所有地方,获取名字并列入清单,我必须做什么,我必须在哪里编写PlaceFilter以过滤Bar和restoraunts,thx。

代码:

   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()));

                listForAd.add(String.valueOf(placeLikelihood.getPlace().getName()));



            }

            adapter.notifyDataSetChanged();
            likelyPlaces.release();
        }
    });

我尝试这样做,但没有工作

List<String> filterType = new ArrayList<String>();
    filterType.add(String.valueOf(Place.TYPE_BAR));
    PlaceFilter filter = new PlaceFilter(false,filterType);
    PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
            .getCurrentPlace(mGoogleApiClient, filter);

1 个答案:

答案 0 :(得分:0)

根据文档PlaceFilter仅限于PlaceIds而非Type。

public PlaceFilter (boolean requireOpenNow, Collection<String> restrictToPlaceIds)
  

restrictToPlaceIds此过滤器应允许的地点ID。如果   这是指定的,只有与给定ID相对应的地方   回。如果为null,则不会按地点ID进行过滤。

我认为尚不支持按地点类型过滤结果。

替代解决方案是:

选项1尝试使用AutocompleteFilter 检查此SO question如何使用它。 但AutocompleteFilter只支持少数类型。

选项2是使用Google Places API Web Service,它允许您查询各种类别的地点信息,例如:机构,重要的兴趣点,地理位置等。您可以通过邻近或文本字符串搜索位置。地方搜索会返回地点列表以及每个地点的摘要信息。

通过“附近搜索”,您可以搜索指定区域内的位置。您可以通过提供关键字或指定要搜索的地点类型来优化搜索请求。

它将结果限制为与指定类型匹配的位置。只能指定一种类型(如果提供了多种类型,则忽略第一个条目后面的所有类型)。 See the list of supported types.