我正在使用Android版Google Places API,并试图将结果限制为仅显示Restaurants。我已经包含一个PlaceFilter,似乎是正确的,但似乎没有应用过滤器并给出除Restaurants之外的其他结果。看到代码:

ArrayList<String> restrictToRestaurants = new ArrayList<>();
                restrictToRestaurants.add(Integer.toString(Place.TYPE_RESTAURANT));
                PlaceFilter pf;
                pf = new PlaceFilter(false, restrictToRestaurants);

                PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(mGoogleApiClient, pf);
                result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
                    @Override
                    public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
                        for (PlaceLikelihood placeLikelihood : likelyPlaces) {

                            placeLikelihood.getPlace().getPlaceTypes();

                            Log.i(TAG, String.format("Place '%s' with " + "likelihood: %g", placeLikelihood.getPlace().getName(), placeLikelihood.getLikelihood()));
                        }
                        likelyPlaces.release();
                    }
                });


任何人都有如何应用PlaceFilter的想法吗?

最佳答案

当前,PlaceFilter类中概述了过滤getCurrentPlace结果的唯一方法:


  requireOpenNow如果为true,则仅返回现在打开的地方
  
  limitToPlaceIds要匹配的特定PlaceId


这些PlaceId中的每一个都应该与特定位置匹配。不幸的是,似乎尚不支持按地点类型(例如餐厅)过滤Places.PlaceDetectionApi.getCurrentPlace的结果。您引用的Place.TYPE_RESTAURANT可以在GeoDataApi.getAutocompletePredictionsAutocompleteFilter中使用。

关于android - Google Places API PlaceFilter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30358460/

10-12 06:29