开发者问题收集

google.maps.places 及其自动完成方法未定义

2013-09-19
52003

我正在加载 Google Maps API jQuery 和此 Geocomplete 插件。 请注意,我还指定了库( libraries=places )并最终指定了我的 API 密钥

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js'></script>
<script src='http://maps.googleapis.com/maps/api/js?v=3&sensor=false&amp;libraries=places&key=xxx'></script>
<script src='js/vendor/jquery.geocomplete.js'></script>

我在页面加载时触发了 Geocomplete 插件

$(window).load(function () {
    $('#my-input').geocomplete();
});

但我总是收到错误:

未捕获的 TypeError:无法读取未定义 [jquery.geocomplete.js:153] 的属性“Autocomplete”。

在插件内部……

this.autocomplete = new google.maps.places.Autocomplete(
 this.input, options
);

我尝试使用 google.maps ,它返回一个常规对象,但 places 是 未定义

1个回答

I tried to google.maps and it returns a regular object, but places is undefined!

这意味着 google.maps.places 库未加载(您发布的代码行(如下所示)不正确或不在您的页面上):

<script src='http://maps.googleapis.com/maps/api/js?v=3&sensor=false&amp;libraries=places&key=xxx'></script>

这是文档中的示例:

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

唯一明显的区别是您的代码中的 &amp; ,它应该可以工作,但您可能应该始终如一地使用它。

TL;DR

使用 &libraries 而不是 &amp;libraries 即可工作。

geocodezip
2013-09-19