jQuery getScript和Google Maps API错误消息
我在加载google maps api时遇到了问题。jQuery getScript和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。您可以尝试从网址中删除async=2
,或使用Google地图的异步和回调代替getScript回调函数(例如,
$.getScript(MyGMap.GMapScriptURL + CurrentKey + "&callback=MyGMap.InitializeMaps");
为了补充一点,[Dion Almaer在他的博客中提到使用'callback'](http://almaer.com/blog/dynamically-loading-google-maps-for-performance) (我正在输入我的答案当这个答案出现在第一次,所以我报废了我的。) – sirhc 2010-06-03 12:49:55
奇怪...现在我得到一个错误:_mF没有定义 这是从哪里来的? – k0ni 2010-06-03 12:54:13
噢,对不起,我推断'Initiazlize' - 我没发现你有一个z在中间。也许就是这样? : -/ – Rup 2010-06-03 12:55:39
你也可以使用async模式,但是你需要提供一个回调函数。
这里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});
什么是个错误信息,你得到? – meo 2010-06-03 12:38:21