当前位置: 首页 > 面试题库 >

限制Android Google Places API仅搜索给定区域

罗凯
2023-03-14
问题内容

我正在使用Android Google Places
API自动完成街道和地址。问题是它覆盖了整个国家的所有街道。当然,我添加了边界来限制搜索的位置,但是它无法正常工作-
它仅给出优先级,因此换句话说,最佳结果在列表中会更高,仅此而已

所以代码:

       AutocompleteFilter typeFilter = new AutocompleteFilter.Builder()
                .setTypeFilter(AutocompleteFilter.TYPE_FILTER_ADDRESS)
                .setCountry("RU")
                .build();

        Intent intent =
                new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_OVERLAY)
                        .zzih(searchString) //that is for passing search string from toolbar
                        .setFilter(typeFilter)
                        .setBoundsBias(city.getBounds())
                        .build(this);

简而言之,问题是:当我输入“ Lenina
Street”之类的搜索内容时,我看到了很多无用的结果.setBoundsBias(city.getBounds())。试想一下,几乎 每个
地方 存在类似“ Lenina Street”的东西!

如何解决该问题并限制搜索结果?

聚苯乙烯

  1. 我知道我可以 手动使用 Google Places Web API或按 GeoDataApi.getAutocompletePredictions()和过滤结果,但这意味着我也必须手动编写UI,这是我不想做的。 那比我想象的还要糟糕。即使我从Web API或通过GeoDataApi获得结果,我也只有不包含坐标的预测,只有placeId。因此,如果我想按坐标过滤预测,则必须请求 每个 placeId。换句话说,如果我有20个位置,则必须再执行20个请求才能找到坐标。
  2. 另外,我可以在中添加城市名称searchString,这样可以使结果更好(但一点也不好),但是这样会使地址的写入变得不清楚,并且发生了城市名称,因此它也不是很好的解决方案。

问题答案:

恐怕Android版Places API尚不支持严格限制。Google问题跟踪器中有一项功能要求,可以实现此功能:

https://issuetracker.google.com/issues/38188994

随时为该功能请求加注星标,以添加您的投票并订阅来自Google的通知。

同时,解决方法可能是使用支持严格限制并手动实现UI的Places API Web服务。



 类似资料:
  • 我正在使用Amadeus Flight Offers Search POST API来搜索航班,我使用了API文档中提到的一些搜索参数和我在stackoverflow问题中找到的一些其他参数。我正在寻找一个包含API所有可能搜索参数的留档。我搜索了很多,但到目前为止除了这个文档和我上面提到的文档之外,找不到任何东西。Amadeus还有另一个留档吗?更具体的东西。我想将“最大停留时间”参数添加到我的

  • 我如何从弹性搜索中获得所有的结果,因为结果只显示限制只有10个。我得到了一个查询,如下所示:

  • 如何告诉Elasticsearch在按术语搜索时排除某个字段? 当一个普通用户搜索摩托车时,什么都不应该返回,但如果他们搜索史密斯,这两个都应该返回。 有能力搜索认证字段的用户如果搜索摩托车将返回标记,如果搜索史密斯将返回标记。

  • 问题内容: 您如何在中搜索密钥?在此程序中,当用户输入密钥时,代码应安排在哈希图中搜索相应的值,然后进行打印。 请告诉我为什么它不起作用。 问题答案: 只需致电:

  • 我有一个问题,我想把弹性搜索的结果减少到1000个,不管有多少匹配的结果匹配,但这不应该影响排名和得分。 我在尝试,但这似乎只是告诉弹性搜索只获得前N个结果,而不考虑分数。如果我说错了,请纠正我。 有什么帮助吗? 编辑: 我已经在使用分页。因此,在From/Size中使用Size只会影响当前页面的大小。但我想将总结果的大小限制为1000,然后对其进行分页。

  • 这是我的数据库结构。 城市->地标->景点(每一个都是一个集合) 查询 列出特定城市下的所有景点。