0

我基本上有以下一段代码:

if(window.google)
return window.mapInit();
    $.getScript( 'http://maps.google.com/maps/api/js?v=3&sensor=false&callback=mapInit' );

//* Google map callback
window.mapInit = function() {


    if (!typeof(google ==='object'))
        return false; // error: google maps API not loaded


    var pos = gmap.pos.split(',');  
    console.log(pos);
    var args = {
        zoom                        : 13,
        center                      : new google.maps.LatLng(pos[0],pos[1]),
        panControl                  : true,
        zoomControl                 : true,
        scaleControl                : true,
        mapTypeId                   : google.maps.MapTypeId.ROADMAP,
        scrollwheel                 : false,
        draggable                   : true
    }

    google.maps.visualRefresh = true;
    gmap.map    = new google.maps.Map( document.getElementById( 'gmap' ), args );

}   

该代码第一次运行良好 - 但是,如果我单击链接以打开另一个带有一些新坐标的地图,则会出现错误:TypeError: 'null' is not an object (evalating 'a[ib]') 指main.js 第 28 行

有人知道我做错了什么吗?

4

1 回答 1

0

这是因为那个元素已经被占用了......也许......如果你想要一个页面上的多个地图......你每次都创建一个新的 div。希望这段代码有帮助..

var myDiv = document.createElement('div');
myDiv.id = 'gmapNew';
gmap.map    = new google.maps.Map( document.getElementById( 'gmapNew' ), args );
于 2013-06-21T06:47:25.123 回答