Google地图V3自动完成位置搜索框无法自定义?

7
我将自动完成限制在覆盖澳大利亚的区域和边界内,但仍然会收到来自智利、中国和其他未选择地区的自动完成提示。有没有好的解决方案?
我也无法更改Google自动完成的样式,它是一个自动生成的带有样式标签的Div,超过了我的自动完成DIV的样式?
我开始使用Geocoder和Jquery自动完成来过滤结果,但效果不如Google自动完成,结果比Google Maps自动完成少。
我这样调用库:
以下是创建自动完成的代码:
    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); 
4个回答

4
现在,您可以使用以下代码将搜索地点限制在美国境内:

componentRestrictions: {country: 'us'},


2
当在添加自动完成时,使用bounds参数,结果偏向于不限于这些边界内的地点。 这与在地理编码 API中使用视口偏置相同。恐怕我没有过滤掉那些超出bounds范围的建议的方法。

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

更多关于偏向这里的地方的信息


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));

实际上,有自动完成 UI 元素样式的文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接