【问题标题】:Search for results within a region (country, state, large city)搜索区域内的结果(国家、州、大城市)
【发布时间】:2014-09-08 11:32:06
【问题描述】:

我们的网站允许人们创建列表,其中包括一个位置字段,该字段由 Google 的 API 填充,就像在 Airbnb 上一样。您开始输入地址的任何部分,然后从 Google 的匹配地点建议中进行选择。

人们可以按位置搜索列表(相同的 Google API 填充位置字段,您可以选择与该位置的距离),这在原则上似乎工作正常。

问题是搜索似乎不适用于区域,例如县。它似乎在该地区内采取了一点措施,并据此采取措施。因此,如果我在“英国”中搜索列表,我几乎不会得到任何结果“10 英里内”,但我会得到很多“250 英里内”的结果。

相反,如果我搜索英国(或英国县,或像伦敦这样的大城市),我希望获得英国境内的所有结果。

为什么它现在不起作用,如何做到这一点?

【问题讨论】:

  • 您的服务器端代码如何确定每个结果是否在用户搜索过的区域中?
  • 嗨亚当,感谢您的回复。我不是编码它的人。编码人员说“API 工作正常”,所以我想我在这里问一下是否有答案可以将他指向正确的方向。到目前为止,我在任何地方都找不到描述的这个问题......
  • 您需要与编写代码的人交谈并检查他的邻近算法。您可能正在向带有视口边界框坐标的服务器页面发送 AJAX 请求(在自动完成选择时)。没有更多代码,我只能推测。
  • 好的。顺便说一句,我们没有使用地图来显示结果。它只是一个列表。但结果应涵盖整个区域的列表,例如国家或城市(如果被搜索)。
  • 好的,请贴一些代码,服务器端和客户端。

标签: google-maps google-maps-api-3 google-places-api region google-geocoding-api


【解决方案1】:

要将自动完成框(我猜这是您正在使用的组件)限制在一个国家/地区,您可以使用componentRestrictions as described here(滚动到将搜索限制在特定国家/地区 )

如果您需要将搜索限制在特定区域,例如“围绕指定点 10 英里”,则要复杂一些。根据文档,您必须

  • 设置自动完成对象的创建范围。
  • 更改现有自动完成的边界。
  • 设置地图视口的边界。
  • 将搜索限制在特定国家/地区。

您可以在段落中找到一个示例here设置自动完成对象的创建范围

【讨论】:

  • 是的,我们正在使用自动完成框,但我们根本不想限制它。用户应该能够在全球范围内输入地址的任何部分。只是在搜索一个区域时,它似乎并没有真正覆盖该区域的边界,例如显示一个国家/地区内的所有搜索结果。
  • 我觉得可以,但是它使用预测服务来猜测用户会搜索什么,我不知道这个服务的算法。您能否提供一个示例,说明您的自动完成的行为看起来很奇怪?此外,如果您搜索的不是地点,例如“披萨”,请考虑使用 SerachBox 而不是 Autocomplete
猜你喜欢
  • 2017-10-20
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-08
  • 2017-06-21
相关资源
最近更新 更多