2012-04-26 30 views
4

我試圖實現此代碼(http://stackoverflow.com/questions/10318316/how-to-hide-or-display-a-google-maps-layer/ )在我的網頁上,把天氣/雲彩放在/離開我的地圖, ,但不知何故它干擾我當前的代碼。我嘗試了上述鏈接中提供的兩個選項,但也許我做了錯誤的事,或者干擾了已經在我的地圖中的Fusion Tables選項?開啓/關閉天氣圖層並結合其他選擇

請問有人可以幫助我用正確的代碼片段嗎? 我的頁面在這裏http://www.strahlen.org/map/mapplusweather.htm。 (de)選擇按鈕已經在右下角。

由於提前, 弗蘭克

PS:雖然管理員刪除你的帖子,感謝亞歷山大·法伯你以前的幫助!

PS 2:我當然有天氣圖層,請參閱http://www.strahlen.org/map/mapweather.htm,但我不能切換它的開/關

*最終編輯* 防止鏈路腐:我這裏使用的代碼我的「生產版本」現在 - >http://www.strahlen.org/map/

+0

您爲大多數複選框添加了DDListener,但我沒有看到'mapplusweather'中天氣複選框的任何點擊操作。我錯過了他們嗎?沒有他們,什麼都不會發生 – 2012-04-26 15:59:04

+0

到目前爲止,我不是程序員。我只是複製/粘貼其他人使用的代碼片段,然後學習,學習,學習。所以,謝謝你的初步答覆。我會盡快學習並儘快回覆你。乾杯!弗蘭克 – Frank 2012-04-26 18:13:55

+0

安德魯,我在你的幫助下又邁出了一步。謝謝,我現在明白了一點。我已經更改了代碼,以便我可以單擊以啓動天氣和/或雲層。見http://www.strahlen.org/map/mapplusweather.htm。但是,如何取消選擇後再次關閉圖層?乾杯! Frank – Frank 2012-04-27 18:03:45

回答

5

我看過您的網站,我相信您只需對現有代碼進行一些基本更改即可。首先,內增加了兩個新的增值經銷商initialize()功能:

function initialize() { 
    var tableId = 3167783; 
    var cloudDisplayIsOn = false; 
    var weatherDisplayIsOn = false; 

然後,在你現有的click監聽器的代碼,使這些變化:

google.maps.event.addDomListener(document.getElementById('cloud'), 
    'click', function() { 
     if (cloudDisplayIsOn) { 
      cloudLayer.setMap(null); 
      cloudDisplayIsOn = false; 
     } 
     else {    
      cloudLayer.setMap(map); 
      cloudDisplayIsOn = true; 
     } 
    }); 

最後,在現有天氣click聽衆密碼,做出非常類似的更改:

google.maps.event.addDomListener(document.getElementById('weather'), 
    'click', function() { 
     if (weatherDisplayIsOn) { 
      weatherLayer.setMap(null); 
      weatherDisplayIsOn = false; 
     } 
     else { 
      weatherLayer.setMap(map); 
      weatherDisplayIsOn = true; 
     } 
    }); 

現在您可能需要進行一些小調試,但我相信這會爲您需要的cloudLayerweatherLayer添加顯示開/關代碼。

+0

親愛的肖恩,非常感謝您的幫助。 Pleave給我幾個星期來測試這個,因爲我昨晚成爲了父親;)一旦我有了睡眠/時間等,我會盡快回復你;)乾杯! – Frank 2012-05-03 19:44:44

+0

哇 - 恭喜!沒有汗水,也不急 - 謝謝你的幫助 – 2012-05-03 19:49:49

+0

Yesssss,在你的幫助下它可以工作!我認爲我們做到了:)換尿布之間:)不得不調整你的代碼。超。你能檢查它是否也適用於你? - > http://www.strahlen.org/map/mapplusweathertest.htm – Frank 2012-05-17 13:20:44

0

我試圖執行一個類似的功能,但用不同的斜面。以下代碼是我們的地圖服務器頁面引用的fusion_maps_v3.js文件中當前使用的geeToggleLayer函數。我試圖消除複選框切換,只需點擊圖層標籤即可切換可見性。

function geeToggleLayer(e, checkBoxId, channel, glmId, layerName) { 
     try { 
     var cb = document.getElementById(checkBoxId); 
     var id = glmId + '-' + channel; 

     // toggle layer visibility via clicking checkbox 
     try { 
      if (cb.checked) { 
      geeMap.showFusionLayer(id); 
      } else { 
      geeMap.hideFusionLayer(id); 
      } 
     } catch (err2) { 
      alert('Failed attempt to enable/disable layer: ' + 
       layerName + '\n' + id + '\n' + err2); 
     } 
     } catch (err) { 
     alert('Failed attempt to get checkbox for layer: ' + 
       layerName + '\n' + err); 
     } 
     cancelEvent(e); 
    }