4

我有一个谷歌地图,我有 3 个标签。理想情况下,我希望在所有三个选项卡中使用相同的地图,但您似乎只能使用 ID 创建地图:

map = new google.maps.Map(document.getElementById('map_canvas'),
    mapOptions);

如果是这种情况,我必须用 3 个单独的 ID 制作 3 个单独的地图吗?您可以仅使用“类”制作 3 个 Google 地图并重新调整同一张地图的用途吗?

4

2 回答 2

2

您可以使用 jQuery 的对象来创建新地图

var mapClass = $('.map_canvas'); and var map = new google.maps.Map(mapClass[0],mapOptions);

请查看我的 jsfiddle 并告诉我http://jsfiddle.net/davidchase03/fDFMz/

于 2013-02-16T02:38:21.917 回答
0

您可以使用下面的 nebula_gdCN() 函数来获取由类名标识的元素数组。然后,您可以为每个选项卡创建一个新地图,并将每个地图对象存储在一个单独的变量中。

<div class="my_tabs" style="width: 550px; height: 450px"></div>
<div class="my_tabs" style="width: 550px; height: 450px"></div>
<div class="my_tabs" style="width: 550px; height: 450px"></div>

<script>
var tabs = nebula_gdCN('my_tabs') ;
map1 = new google.maps.Map(tabs[0], mapOptions);
map2 = new google.maps.Map(tabs[1], mapOptions);
map3 = new google.maps.Map(tabs[2], mapOptions);

//Include these two functions
nebula_gdCN = function(q){
    var classArr = Array();
    for(var i=0;i<document.getElementsByTagName('*').length;i++){
        if( nebula_gdC(i).className == q){
            classArr.push(nebula_gdC(i)) ;
        }
    }
    return classArr ;
}
nebula_gdC = function(i,b){
    var b = b || '*' ;
    return document.getElementsByTagName(b)[i] ;
}
</script>
于 2013-02-15T18:09:36.420 回答