2012-02-05 16 views
0

我有兩個融合表,作爲圖層添加到地圖可視化中。融合表圖層:加載時隱藏圖層 - 通過標記複選框顯示請求

  • Layer1的是地方列表(點擊之後,會出現一個信息框)
  • 二層是幾個區域的地圖(進口KML多邊形)。每一個是根據天氣預報有色(填充顏色)(即藍色的降雨機率很高;紅色爲晴天...)

我要的是:

  • 負載:秀只有Layer1; Layer2保持隱藏狀態。
  • 如果用戶想要加載/查看Layer2,他必須選中一個複選框。

我不知道該怎麼做。即使這是可能的。

以下是我的代碼。

在此先感謝!

<script type="text/javascript"src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
var map; 

var layer; 
var tableid = 1111; 

var layer2; 
var tableid2 = 2222; 

function initialize() { 
map = new google.maps.Map(document.getElementById('map_canvas'), { 
center: new google.maps.LatLng(10, 10), 
zoom: 8, 
mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

layer = new google.maps.FusionTablesLayer(tableid); 
layer.setQuery("SELECT 'geometry' FROM " + tableid); 
layer.setMap(map); 

layer2 = new google.maps.FusionTablesLayer(tableid2); 
layer2.setQuery("SELECT 'coordenadas' FROM " + tableid2); 
layer2.setMap(map); 
} 

function changeLayer(tableidselections) { 

if (tableidselections == 1111){ 
    if (document.getElementById("avisos").checked == true) { 
     if(layer.getMap() == null) { layer.setMap(map); } 
    } 

    if (document.getElementById("avisos").checked == false) { 
     layer.setMap(null); 
    } 

} 

if (tableidselections == 2222){ 
    if (document.getElementById("eventos").checked == true) { 
     if(layer2.getMap() == null) { layer2.setMap(map); } 
    } 

    if (document.getElementById("eventos").checked == false) { 
     layer2.setMap(null); 
    } 
} 

} 

</script> 

</head> 
<body onload="initialize();"> 

<div id="selector_box"> 
    <table> 
     <tr><td> 
      <form id="selector_form" style="font-size:14px"> 
       <input type="checkbox" value="1111" name="selector" id="avisos" onclick="changeLayer(this.value);">Show weather info 
       <!-- <input type="checkbox" value="2222" name="selector" id="eventos" onclick="changeLayer(this.value);">Eventos --> 
      </form> 
     </td></tr> 
    </table> 
</div> 

回答

1

是的,你可以做到這一點;你的代碼看起來應該可以工作。只需在initialize方法中跳過layer2.setMap(map),然後默認情況下不會加載layer2。

如果您有麻煩,那麼可能會將完整的代碼(使用實際的表ID)發佈到jsfiddle或其他位置,並說出問題所在。

+0

對此延遲迴答抱歉。我必須做與我真正的工作有關的事情(我不是程序員!)。做你說的,它的作品。謝謝! – nautilia 2012-02-17 16:15:18