jQuery getScript和Google Maps API错误消息

我在加载google maps api时遇到了问题。

我用一个初始化地图的函数得到了我自己的对象,谷歌地图api通过jquery.getscript加载。 但我总是在回调函数中收到一条错误消息:

var MyGMap = { GMapScriptURL: "http://maps.google.com/maps?file=api&v=2&async=2&key=", Map: null, Geocoder: null, InitiazlizeMaps: function () { if (GBrowserIsCompatible()) { this.Map = new GMap2(document.getElementById("map_canvas")); this.Map.setCenter(new GLatLng(37.4419, -122.1419), 13); this.Geocoder = new GClientGeocoder(); } } } $(function(){ var CurrentKey = "MY_KEY"; $.getScript(MyGMap.GMapScriptURL + CurrentKey, function () { MyGMap.InitiazlizeMaps(); // throws GMap2 is undefined }); }); 

怎么了? 为什么这不运行?

脚本URL行中有async=2 ,这意味着异步加载映射核心 – 在调用InitializeMaps之前需要等待它完成。 您可以尝试从URL中删除async=2 ,也可以使用Google Map的异步和回调代替getScript回调函数,例如

 $.getScript(MyGMap.GMapScriptURL + CurrentKey + "&callback=MyGMap.InitializeMaps"); 

您也可以使用异步模式,但需要提供回调函数。

在这里http://lucamanzo-soluzione-software.it/wp/?p=5您可以找到一个简单的jquery插件,显示使用异步加载和jquery的所有步骤,并使用几行代码构建地图:

 $.gmapstools.init(); $("#my_map_canvas").gmap({lat:37.4221913, lng:-122.08458530000001, draw_marker:true, zoom_level:13});