jQuery getScript和Google Maps API错误消息

时间:2010-06-03 12:32:41

标签: jquery google-maps

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

我使用初始化地图的函数获得了自己的对象,并且通过jquery.getscript加载了google maps api。但我总是在回调函数中收到错误消息:

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

    });
});

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

2 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:1)

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

在这里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});