放置自动完成窗口小部件:范围偏差似乎太弱

时间:2018-07-20 13:47:02

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

我希望“地方信息自动完成”小部件可以建议法国内的地方,但不仅限于法国。我遵循了official guide并添加了边界(我设置了一个矩形边界,该边界不会在法国以外溢出),但是返回前两位数字字符的位置通常超出边界。

我在参考文献中看到界限是有偏见的,并不局限于界限,但是偏见似乎太弱了。有什么方法可以使其更坚固吗? (参数?)

示例: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上重定向了我。

1 个答案:

答案 0 :(得分:-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
});

我希望这会有所帮助!