2016-02-17 53 views
0

我是OpenLayers的新手,並使用OpenStreetMap進行項目。當我打開該項目時,我目前擁有的圖層已經可見並且處於彼此之上。如何讓OpenLayers中的默認圖層在選定之前不可見?

我希望我的圖層不顯示在地圖上,直到他們的複選框被選中(讓他們在默認情況下未選中),但我似乎無法弄清楚這是如何完成的。

如果有幫助,我可以提供代碼。

+0

是的,請張貼您當前的代碼並解釋您遇到的具體問題。 – Ben

+0

爲什麼你在這個問題上使用[tag:leaflet]標籤? – iH8

回答

1

也許您認爲在OL3中不存在的layerswitcher控件中,但它在OL2中非常有用。

您可以在OL3中使用Matt Walker的控件。按照以下步驟:

  1. https://github.com/walkermatt/ol3-layerswitcher
  2. 下載把它放在你aplication的同一文件夾
  3. 所有層都必須Title屬性,以及他們必須使用ol.layer.Group內羣體。您可以創建不同的組,並將默認圖層中的屬性visible = true設置爲false(其他人爲false)。

例子:

<html><head><link rel="stylesheet" href="http://openlayers.org/en/v3.2.0/css/ol.css" type="text/css"> 
<script src="http://openlayers.org/en/v3.13.0/build/ol.js" type="text/javascript"></script> 
<link rel="stylesheet" href="ol3-layerswitcher-master/src/ol3-layerswitcher.css" type="text/css"/> 
<script src="ol3-layerswitcher-master/src/ol3-layerswitcher.js"></script> 

<style> 
    #map{ 
    position: absolute; 
    width: 100%; 
    height: 75%; 
    } 
</style> 
</head> 
<body> 
    <h1> ol3-layerswitcher</h1> 
    <div id="map"></div> 
    <script> 
     var map = new ol.Map({ 
      layers: 
       [new ol.layer.Group({ 
        'title': 'Base maps', 
        layers: [ 
         new ol.layer.Tile({ 
          title: 'Water color', 
          type: 'base', 
          visible: false, 
          source: new ol.source.Stamen({ 
           layer: 'watercolor' 
          }) 
         }), 
         new ol.layer.Tile({ 
          title: 'OSM', 
          type: 'base', 
          visible: false, 
          source: new ol.source.OSM() 
         }), 
         new ol.layer.Tile({ 
          title: 'Satellite', 
          type: 'base', 
          visible: true, 
          source: new ol.source.MapQuest({layer: 'sat'}) 
         }) 
        ] 
       }), 
       new ol.layer.Group({ 
        title: 'Overlays', 
        layers: [ 
         new ol.layer.Tile({ 
          title: 'Countries', 
          source: new ol.source.TileWMS({ 
           url: 'http://demo.opengeo.org/geoserver/wms', 
           params: {'LAYERS': 'ne:ne_10m_admin_1_states_provinces_lines_shp'}, 
           serverType: 'geoserver' 
          }) 
         }) 
        ] 
       }) 
       ], 
       target: 'map', 
       view: new ol.View({ 
        center: ol.proj.transform([2.1, 41.50], 'EPSG:4326', 'EPSG:3857'), 
        zoom: 8 
      }) 
     }); 

     var layerSwitcher = new ol.control.LayerSwitcher({ 
      tipLabel: 'Leyenda' 
     }); 
     map.addControl(layerSwitcher); 
     layerSwitcher.showPanel(); 
    </script></body></html> 

另一個在線例如:http://rawgit.com/walkermatt/ol3-layerswitcher/master/examples/layerswitcher.html

希望這可以幫助你!

相關問題