java - Google 放置 getPlaceID 返回非空数组但过滤器返回零结果

标签 java android geolocation google-places-api google-places

我已经在我的应用程序中成功实现了 Google 地点。我现在正在尝试过滤结果,这是我的结果数组。

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, null);

getCurrentPlace 的第二个参数是过滤器选项。我使用过 null 但是,我不知道如何向结果添加过滤器。我看过 place types .

因为我附近有一个图书馆,所以我试过这个:

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, Place.TYPE_LIBRARY);

但是,我得到了错误

Error:(98, 118) error: incompatible types: int cannot be converted to PlaceFilter

我看过一些 Stackoverflow 帖子,但它们已经很老了,所以我不知道它们是否仍然适用。他们都说过滤器还没有在 google places 中完全实现。现在还是这样吗?如果没有,有人可以帮忙吗

谢谢

更新 1:

所以我找到了this link查找每种类型的 placeID: 只是为了测试我这样做了(基本上它应该再次打印我的文本框中的所有位置,就像它是否为空一样):

ArrayList<String> filter = new ArrayList<>();
    for (int i =0; i< 5000; i++){
        filter.add(String.valueOf(i));
    }

    PlaceFilter filterClosed = new PlaceFilter(false, filter);

然后应用它:

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, filterClosed);

但是我在文本框中没有任何位置,我的字体接收到任何位置信息。知道为什么吗?

更新 2 使用您在评论中提供的信息,我使用 getID 方法获得了 placeID,请引用我在评论中上传的屏幕截图(stackoverflow 不允许我再上传链接)。所以它给我 ID 为什么当我将过滤器应用于结果时它什么都不返回?其他人可以试试这个吗?这是我的代码:

PlaceFilter filterClosed = null;
    ArrayList<String> filter = new ArrayList<>();
    for (int i =0; i < 45; i++){
        filter.add(String.valueOf(i));
    }
    filterClosed = new PlaceFilter(false, filter);
    txtLocation.setText(String.valueOf(filterClosed.getPlaceIds()));



    PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, filterClosed);

我不明白如何使用 places matches bool val

最佳答案

第二个参数需要是 PlaceFilter 对象而不是 int

List<String> filters = new ArrayList<>();
filters.add(Place.TYPE_LIBRARY); 
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi.getCurrentPlace(googleApiClient, PlaceFilter(true, filters));

PlaceFilter 构造函数的第一个参数决定是否只过滤现在开放的地点。

参见 here为类的完整引用。

关于java - Google 放置 getPlaceID 返回非空数组但过滤器返回零结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40076533/

相关文章:

Java - 非静态枚举

Android - 全局布局监听器不工作

从计算机安装应用程序时的 Android 权限

Chrome 中的 HTML5 地理位置提示

java - 找不到 java.net 的符号

java - 检查具有特定属性的对象是否已存在

java - 遍历DOM树时Jsoup节点哈希码冲突

android - 如何在横向方向上组合工具栏和 TabLayout?

java - 使用JAVA中的geotools在定义的距离(km)内从一条线(GPS坐标)生成多边形

java - 如何在android中获取移动设备的经纬度?