自动填充Google Map V3地方无法自定义?

时间:2011-09-27 00:23:04

标签: google-maps autocomplete google-geocoder

我将自动完成范围缩小到一个区域和仅覆盖澳大利亚的范围,但我仍然接受智利和中国以及所选区域以外的其他国家的自动完成。 有没有人有一个很好的解决方案来解决这个问题? 我也无法改变谷歌自动完成的样式,它是一个自我生成的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 个答案:

答案 0 :(得分:4)

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

componentRestrictions:{country:'us'},

答案 1 :(得分:2)

Adding Autocompletebounds结果偏向时,不受限制,包含在这些边界内的地方。< / 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));

实际上有documentation to style the UI elements of Autocomplete