当前位置: 首页 > 知识库问答 >
问题:

限制谷歌地图API v3搜索结果到一个国家,同时将其偏置到一个位置

刘泰
2023-03-14

我试图将搜索结果限制在一个国家,并将其严重偏向于特定的lat/lng(但不限制)。

我使用“界限”字段将API返回的搜索结果偏向于用户的位置(文档)。这很有效,但是,我还需要将返回的结果限制在一个国家。

我使用的是“地区”字段,但它不会将结果限制在某个国家,只会使其产生偏见。我尝试使用“componentRestrictions”字段将结果限制在一个国家。这很有效,但是,我最初设置的位置偏差(带有“边界”字段)似乎停止工作(或者至少现在工作方式不同)。

有没有关于如何在这里实现我的目标的想法?

实例

我正在发送“35 bastion st.”的地理编码请求,区域设置为CA(加拿大),边界设置为加拿大不列颠哥伦比亚省温哥华附近2.5度。有两个搜索结果可以出现:一个在加拿大安大略省多伦多,另一个在加拿大不列颠哥伦比亚省纳奈莫。我希望纳奈莫一号会出现在这种情况下,因为它的位置更近,确实如此。链接:https://maps.googleapis.com/maps/api/geocode/json?address=35堡垒街。

现在,如果我有相同的请求,但应用了国家过滤器,我希望返回相同的结果,但事实并非如此。链接:https://maps.googleapis.com/maps/api/geocode/json?address=35堡垒街。

编辑:

更正了第二个链接:https://maps.googleapis.com/maps/api/geocode/json?address=35堡垒街。

共有1个答案

云飞翮
2023-03-14

根据谷歌的说法,这并不是一个bug(参见此处:https://issuetracker.google.com/issues/123557217).

根据我们的工程师,这是按预期工作。

原因是,在使用这两个参数时,国家部分将优先考虑,因为这两个参数的使用情况完全不同。

此外,“35 Bastion st”非常模糊,应该使用Autocomplete搜索,其中视口/边界可以更好地影响结果。

 类似资料:
  • 我想让谷歌地图按地址搜索 下面是我的cari.java代码 我想要的是,当我在editText中写出一条街的名字(例如:第1大道1152号),然后按下搜索按钮,它就会在谷歌地图上显示该位置(第1大道1152号)。 当我运行这个程序时,,,它说 “java.lang.RuntimeException:无法实例化activity ComponentInfo{Udin.GoogleMap2/Udin.G

  • 我对谷歌的android地图api完全陌生,我想知道是否有可能将地图显示的区域限制在一个国家。我的意思是,我的目标用户只在我自己的国家,当应用程序逻辑只在这个国家上时,向他们展示整个世界是没有用的,也不符合逻辑的。 有什么想法吗? PS:如果在谷歌的api中不可能,有没有办法用另一个api从另一个提供映射服务的源中做到这一点?

  • 我想用谷歌地图显示多个位置 为了显示一个我会去https://www.maps.google.com/maps?daddr=20.566645.345 类似于 https://www.maps.google.com/maps?daddr=20.566645.345 这可能来自网址吗?

  • 问题内容: 我想为我们的多TB文件服务器的结构创建一个克隆。我知道cp –parents可以移动文件及其父结构,但是有什么办法可以完整地复制目录结构? 我想复制到Linux系统,并且文件服务器安装在CIFS上。 问题答案: 您可以执行以下操作: 创建目录列表,然后 在目标上创建目录。

  • 我正在尝试实现Google Places Autocomplete API,有时我可以获取位置列表,但有时我会收到“无法加载搜索结果”的消息。有人能帮我解决这个问题吗。

  • 我正在使用latitude在百度地图(中国的主要地图服务)中实现一个地图视图 进行线性调整后,百度位置大致出现在正确的位置(几米): 虽然这可以满足我的特殊需要,但我不喜欢这些神奇的数字。有人知道这种抵消是从哪里产生的吗?