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 (evaluating 'a[ib]') refering to 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 に答える