【问题标题】:Places autocomplete widget : bounds bias seems too weak地方自动完成小部件:边界偏差似乎太弱了
【发布时间】:2018-07-20 13:47:01
【问题描述】:

我希望“地点”自动完成小部件能够推荐法国境内的地点,但不限于法国。我遵循official guide 并添加了边界(我设置了一个不会在法国以外溢出的矩形边界),但是为第一个数字字符返回的位置大部分时间都超出了边界。

我在参考资料中看到了 bound 是有偏差的,并且不限于 bound,但是这个偏差似乎太弱了。有什么方法可以让它变强吗? (参数?)

示例:https://codepen.io/benjamin-chevillon/pen/XBrNLZ

new google.maps.places.Autocomplete(inputBounded, {
    types: ["geocode"],
    bounds: autocompleteBounds
});

例如,当我输入“33”时,5 条建议中有 4 条超出了范围。而仅限于法国的小部件返回很多带有“33”的地方。

official Google example 上,自动完成边界链接到地图。默认情况下,地图以悉尼为中心。如果您输入“33”,您将获得澳大利亚的位置。但是如果你搬到法国,你会得到欧洲的建议(但在法国之外)。我看到只有当我们开始输入数字时才会发生这种情况。但在法国,这是描述邮政地址的常用方式。

我创建了一个问题 https://issuetracker.google.com/issues/111234226,但他们将我重定向到 SO。

【问题讨论】:

  • 嗯,我想你回答了你自己的问题。结果要么有偏见,要么仅限于某些地区、国家等。您将问题提交为错误。如果您希望 Google 增加更多灵活性,我相信这应该是一个功能请求。也就是说,搜索数字有点模糊。如果我只输入“rue”(街道),那么所有结果都在法国......现在为什么带有“33”的法国以外的地址似乎比其他地址更重要......我无法回答这个问题。
  • 也就是说,您可以使用Autocomplete Service 构建您自己的自动完成小部件,这使您可以完全灵活地显示结果。例如,您可以混合 2 个请求,1 个带有国家/地区限制,1 个不带(或带有其他参数),并以某种方式合并来自 2 个请求的结果(或单独显示它们......任何适合您的)。
  • 您可以查看this answer 以获取有关如何使用该服务的示例...如果有帮助的话。
  • 您是否尝试过您引用的问题跟踪器中建议的strictBounds 参数?

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


【解决方案1】:

为了将自动完成小部件的结果限制在您的范围内,您必须使用问题跟踪器中提到的strictBounds 参数:

https://developers.google.com/maps/documentation/javascript/reference/3/places-widget#AutocompleteOptions.strictBounds

strictBounds - 一个布尔值,指示自动完成小部件应仅返回发送查询时自动完成小部件范围内的那些位置。将 strictBounds 设置为 false(这是默认值)将使结果偏向但不限于边界内包含的位置。

所以,你的代码应该重写为

new google.maps.places.Autocomplete(inputBounded, {
    types: ["geocode"],
    bounds: autocompleteBounds,
    strictBounds: true
});

我希望这会有所帮助!

【讨论】:

  • 我希望“地点”自动完成小部件能够推荐法国境内的地点,但不限于法国。
猜你喜欢
  • 1970-01-01
  • 2020-08-20
  • 1970-01-01
  • 2014-01-12
  • 2016-07-01
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多