getCurrentPlace只给出20个结果,并且过滤器不起作用



我试图使用Android的地方API列出我附近的地方。我使用了以下代码:

List<Integer> placeType = new ArrayList();
placeType.add(Place.TYPE_GROCERY_OR_SUPERMARKET);
PlaceFilter filter = new PlaceFilter(placeType, true, null, null);
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
        .getCurrentPlace(mGoogleApiClient, filter);

但是我只得到20个结果。此外,我应用的过滤器不起作用。无论你给一些过滤器或通过过滤器参数null,结果都没有区别。

请澄清。

谢谢,拉胡尔

placeffilter不支持按类型过滤

唯一支持的构造函数是下面的两个参数:

PlaceFilter(boolean requireOpenNow, Collection<String> restrictToPlaceIds)

如果您想按类型进行限制,您可以尝试手动查看getCurrentPlace()的结果并过滤具有TYPE_GROCERY_OR_SUPERMARKET类型的位置。

在Places.PlaceDetectionApi.getCurrentPlace中不能使用PlaceFilter来过滤地点类型。来自文档:

您可以选择指定一个PlaceFilter来将结果限制为一个或多个位置id(最多10个),或者只选择当前打开的位置。如果不指定过滤器,则不过滤结果。

这是来自Google的限制:

默认情况下,每个"附近搜索"或"文本搜索"每次查询最多返回20个建立结果;然而,每次搜索可以返回多达60个结果,分散在三个页面上。如果搜索返回的值大于20,那么搜索响应将包含一个附加值——next_page_token。将next_page_token的值传递给新搜索的pagetoken参数,以查看下一组结果。如果next_page_token为空,或者没有返回,则没有进一步的结果。从next_page_token发出到它生效之间有一个短暂的延迟。在下一页可用之前请求下一页将返回一个INVALID_REQUEST响应。使用相同的next_page_token重新尝试请求将返回下一页的结果。

希望有帮助

最新更新