main.js:28 - 输入错误谷歌地图

时间:2013-06-19 17:32:17

标签: google-maps google-maps-api-3

我基本上有以下代码:

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 );

}   

代码第一次工作正常 - 但是,如果我点击一个链接打开另一个带有一些新coords的地图,则会出现错误:TypeError:'null'不是一个对象(评估'a [ib]' )指的是main.js第28行

有人知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

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

var myDiv = document.createElement('div');
myDiv.id = 'gmapNew';
gmap.map    = new google.maps.Map( document.getElementById( 'gmapNew' ), args );