我希望“地方信息自动完成”小部件可以建议法国内的地方,但不仅限于法国。我遵循了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上重定向了我。
答案 0 :(得分:-1)
为了将自动完成窗口小部件的结果限制在您的范围内,您必须使用问题跟踪器中提到的strictBounds
参数:
strictBounds -一个布尔值,指示“自动完成”小部件仅应在发送查询时返回“自动完成”小部件范围内的那些位置。将strictBounds设置为false(这是默认设置)会使结果偏向(但不限于)边界内的位置。
因此,您的代码应重写为
new google.maps.places.Autocomplete(inputBounded, {
types: ["geocode"],
bounds: autocompleteBounds,
strictBounds: true
});
我希望这会有所帮助!