7

我将自动完成功能缩小到一个区域和仅涵盖澳大利亚的范围,但我仍在接收与智利、中国和其他国家/地区超出所选区域的自动完成功能。有没有人有一个很好的解决方案来解决这个问题?我也无法更改 Google 自动完成的样式,它是一个带有样式标签的自行生成的 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); 
4

4 回答 4

4

如今,您可以限制在以下国家/地区:

组件限制:{国家:'我们'},

于 2012-10-10T20:25:53.767 回答
2

使用添加自动完成bounds结果会偏向不限于包含在这些范围内的地点。这与在Geocoding API中使用Viewport Biasing时相同。恐怕我没有办法过滤掉那些不属于.bounds

于 2012-01-26T07:22:40.277 回答
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

更多关于这里有偏见的地方

于 2014-10-28T10:53:36.700 回答
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));

实际上有文档来设置 Autocomplete 的 UI 元素的样式

于 2016-11-13T04:35:37.537 回答