如何将事件绑定到leaflet layerswitcher而不将其绑定到图层?

时间:2017-08-21 19:37:26

标签: leaflet

我正在使用Leaflet并使用了layerselector。

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

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
  }
}

我该怎么做?有可能吗?

1 个答案:

答案 0 :(得分: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.
});