我可以将谷歌地图功能放入关闭吗?

thi*_*yup 9 javascript google-maps

我正在尝试编写一些谷歌地图功能和玩javascript闭包,目的是尝试组织和更好地构建我的代码.

我有以下代码:

var gmapFn ={
    init : function(){
        if (GBrowserIsCompatible()) {
            this.mapObj = new GMap2($("#map_canvas"));
            this.mapObj.setCenter(new google.maps.LatLng(51.512880,-0.134334),16);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我稍后在jquery doc中调用它:

$(document).ready(function() {
    gmapFn.init();
})
Run Code Online (Sandbox Code Playgroud)

我已经设置了谷歌地图键,但我在main.js上收到错误:

未捕获异常:[Exception ..."组件返回失败代码:0x80004005(NS_ERROR_FAILURE)"nsresult:"0x80004005(NS_ERROR_FAILURE)"位置:"JS frame :: http://maps.gstatic.com/intl/en_ALL/mapfiles/ 193c/maps2.api/main.js :: ig :: line 170"data:no] QO()

这个错误似乎是在GBrowserIsCompatible()测试中抛出的,我认为这是由我使用这个闭包,有没有办法将它保持在一个闭包中并使init()工作?

bdl*_*bdl 15

除了GMap2不能使用jQuery对象作为参考之外,您的代码或实现没有任何问题.使用普通老document.getElementById("map_canvas").

或者,如果要与jQuery的使用保持一致,可以使用$("#map_canvas")[0]$("#map_canvas").get(0)引用实际的DOM元素并将其传递给GM​​ap2构造函数.

顺便说一句,你似乎是混合V2 V3带,例如new google.maps.LatLng()VS new GLatLng().