我将自动完成范围缩小到一个区域和仅覆盖澳大利亚的范围,但我仍然接受智利和中国以及所选区域以外的其他国家的自动完成。 有没有人有一个很好的解决方案来解决这个问题? 我也无法改变谷歌自动完成的样式,它是一个自我生成的Div与样式标签,克服了我的风格自动完成DIV? 我开始使用Geocoder和Jquery自动完成来过滤结果,但它不能像谷歌自动完成一样好,结果不如谷歌地图自动完成?
我像这样打电话给图书馆:
以下是创建自动完成的代码:
var defaultBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(-47.5765257137462, 106.259765625),
new google.maps.LatLng(-9.6, 179.359375));
var options = {
bounds: defaultBounds,
types: ['geocode'],
offset: 5
};
var input = document.getElementById('store-locator-header');
var autocomplete = new google.maps.places.Autocomplete(input,options);
答案 0 :(得分:4)
如今,您可以限制使用以下国家/地区:
componentRestrictions:{country:'us'},
答案 1 :(得分:2)
当Adding Autocomplete与bounds
,结果偏向时,不受限制,包含在这些边界内的地方。< / em>这与在Viewport Biasing中使用Geocoding API时相同。我担心我没有办法过滤掉那些超出bounds
的建议。
答案 2 :(得分:0)
快速定制的另一种方法是设置组件限制,如下所示
var autocomplete = new google.maps.places.Autocomplete(input);
//autocomplete.bindTo('bounds', map);//restrict to bounds or viewport
autocomplete.setComponentRestrictions({'country': 'uk'});//restrict to country
有关偏向here
的地方的更多信息答案 3 :(得分:0)
问题在于LatLngBounds期望西南角和东北角。
而不是:
var defaultBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(-47.5765257137462, 106.259765625),
new google.maps.LatLng(-9.6, 179.359375));
应该是:
var defaultBounds = new google.maps.LatLngBounds(
new google.maps.LatLng(-9.6, 106.259765625),
new google.maps.LatLng(-47.5765257137462, 179.359375));