【问题标题】:Google Places API PlaceFilterGoogle Places API PlaceFilter
【发布时间】:2015-05-20 19:13:25
【问题描述】:

我正在使用适用于 Android 的 Google Places API,并试图将结果限制为仅显示餐厅。我已经包含了 PlaceFilter 并且似乎是正确的,但似乎没有应用过滤器并提供除餐厅之外的其他结果。见代码:

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 吗?

【问题讨论】:

    标签: android google-places-api


    【解决方案1】:

    目前,过滤getCurrentPlace 的结果的唯一方法在PlaceFilter 类中进行了概述:

    requireOpenNow 如果为真,则只返回现在开放的地方

    restrictToPlaceIds要匹配的具体 PlaceIds

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

    【讨论】:

    • 谢谢。在更仔细地阅读了 API 之后,我认为这不是我应该做的。听起来更像是它会抓取设备实际所在的位置。我的印象是位置服务只会抓取你周围的地方。在我看来,这个名字很有欺骗性。
    • 我不确定这是否会对您有所帮助,但 API 确实公开了一个可用于查看附近地点的小部件。它允许用户选择其中一个地方并将结果返回给您。不过,这可能不适合您要完成的工作。此外,您似乎无法按地点类型对其进行过滤。 developers.google.com/places/android/placepicker
    • 它仍然没有修复。花了一整天的时间,我在stackoverflow上得到了这篇文章。想知道开发人员不热衷于使用 android 功能,或者我做错了。请回复是否已修复或除 AutoCompleteFilter 之外还有其他工作方式。
    • 我在 google code.google.com/p/android/issues/… 上打开了一个错误。请为该问题加注星标以了解该错误。
    • 这并不是真正的错误,它只是 API 的设计方式。如果您不知道“ID”是什么,文档会有点混乱,但可以说每个 ID 都映射到 Google 地点数据库中的一个地点。这不同于“类型”(例如餐厅或医院)。知道了这一点,如果您阅读文档,您会发现它完全按照它所说的那样工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2014-03-18
    • 2012-02-22
    • 1970-01-01
    • 2020-05-11
    相关资源
    最近更新 更多