我有一个谷歌地图,我有 3 个标签。理想情况下,我希望在所有三个选项卡中使用相同的地图,但您似乎只能使用 ID 创建地图:
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
如果是这种情况,我必须用 3 个单独的 ID 制作 3 个单独的地图吗?您可以仅使用“类”制作 3 个 Google 地图并重新调整同一张地图的用途吗?
我有一个谷歌地图,我有 3 个标签。理想情况下,我希望在所有三个选项卡中使用相同的地图,但您似乎只能使用 ID 创建地图:
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
如果是这种情况,我必须用 3 个单独的 ID 制作 3 个单独的地图吗?您可以仅使用“类”制作 3 个 Google 地图并重新调整同一张地图的用途吗?
您可以使用 jQuery 的对象来创建新地图
var mapClass = $('.map_canvas'); and var map = new google.maps.Map(mapClass[0],mapOptions);
请查看我的 jsfiddle 并告诉我http://jsfiddle.net/davidchase03/fDFMz/
您可以使用下面的 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>