Google Maps v3 API – 自动完成(地址)

试图让我的谷歌地图应用程序自动完成工作。

这是当前的代码:

HTML

<input type="text" class="clearText" id="address" name="address" value="" size=20 autocomplete="off"> 

使用Javascript

  var input = document.getElementById('address'); var options = { componentRestrictions: {country: 'au'} }; var autocomplete = new google.maps.places.Autocomplete(input, options); 

不幸的是,input地址时没有任何反应

有任何想法吗?

提前致谢。

编辑:我实际上收到以下错误:

Uncaught TypeError:无法读取未定义的属性'autocomplete'

不知道为什么,代码放在我的地图初始化函数中。

编辑2:修正。 下面回答。

你的修复也适用于我。 我正在使用Geocomplete jQuery插件http://ubilabs.github.com/geocomplete/,并在其主页上的说明说使用此;

 <script src="http://maps.googleapis.com/maps/api/js?sensor=false&amp;libraries=places"></script> 

但它不适合我,并得到同样的错误。

查看Google Maps API的文档https://developers.google.com/maps/documentation/javascript/places?hl=zh-CN#loading_the_library

固定。 自动完成库实际上是一个单独的库,必须显式加载。 以下行解决了这个问题。

 <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places‌​&sensor=false"></scr‌​ipt> 

你必须添加'推迟asynchronous'的脚本属性,如下所示:

  <script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&libraries=places&callback=initMap" async defer></script> 

感谢马特的答案! 不知何故,当使用libraries=places时,不要忽略<script>标签上的type="text/javascript"属性。

不起作用:

 <script src="http://maps.googleapis.com/maps/api/js?libaries=places&sensor=false&callback=initMap"></script> <script src="http://maps.googleapis.com/maps/api/js?libaries=places&sensor=false"></script> 

作品:

 <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false"></script> 

callback变体也可以工作(定义了initMap函数):

 <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false&callback=initMap"></script> 

这似乎是与另一个SO的答案是一致的,与官方文档不一致(除非在URL中提供的key是有区别的)。