2016-03-07 69 views
0

我想用傳單做一個自定義圖層控件,但我不知道它爲什麼不起作用。當我點擊複選框時,在Firebug中出現以下錯誤:TypeError: obj is undefined。我將此代碼添加到我main.js腳本:自定義圖層控制與傳單

// Custom layerpanel -- WORK IN PROGRESS! 

    $("input").click(function(event) { 
     layerClicked = window[event.target.value]; 

      if (map.hasLayer(layerClicked)) { 
       map.removeLayer(layerClicked); 
      } 
      else{ 
       map.addLayer(layerClicked); 
      } ; 
    }); 

,這對我的索引文件:

<div class="checkbox"> 
    <label><input type="checkbox" value="mapDataLayer" checked> 
    Option 1</label> 
</div> 

回答

1

變量通過var myVarName設置並不像window對象(window[event.target.value])的性質進行訪問。你必須分配你的層以類似的方式:window["mapDataLayer"] = L.geoJson(...)

注:

  • 你GeoJSON的層0功能,所以你不會看到任何新的東西。
  • 您的複選框最初被選中,但圖層不在地圖上。因此,當取消選中該複選框時,圖層將添加到地圖上,反之亦然。
+0

我做了你所建議的改變,它的工作原理。唯一的一點是,當我進行高級搜索時,我必須雙擊teh提交按鈕才能再次使用圖層控制。 –

+0

Ghybs管理員刪除了重擊者。感謝您的幫助。 –