2017-08-21 38 views
0

我正在使用Leaflet并使用layerselector。如何将事件绑定到leaflet layerswitcher而不将其绑定到图层?

我的问题是,现在我定义我的层是这样的:

var mymaps = { 
"Overlay 1": new L.geoJson(...) 
"Overlay 2": new L.geoJson(...) 
} 
L.control.layers(mymaps).addTo(mymap); 

我要的是能够做到:

var mymaps = { 
"Overlay 1": new L.geoJson(...) 
"Overlay 2": new L.geoJson(...) 
"Overlay 3": function() { 
    console.log("Overlay 3 Selected"); 
    // call some other methods to pull in data and affect map 
    } 
} 

我该怎么办呢?可能吗?

回答

0

当使用L.Control.Layers时,baselayerchangeoverlayaddoverlayremove事件在您的地图实例上触发。在你的情况下,你需要baselayerchange事件:

当通过图层控件更改基础层时触发。

参考:http://leafletjs.com/reference-1.2.0.html#map-baselayerchange

map.on('baselayerchange', function (e) { 
    console.log(e.name); // The name of the layer that was added or removed. 
    console.log(e.layer); // The layer that was added or removed. 
});