2017-08-21 7 views
0

Ich verwende Leaflet und verwende den Ebenenwähler.Wie binden Sie ein Ereignis an einen Leaflet-Layerwitcher, ohne es an eine Ebene zu binden?

ist mein Problem jetzt ich meine Schichten wie folgt definieren:

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

Was ich will, ist in der Lage sein, zu tun:

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

Wie das ich tun? Ist es möglich?

Antwort

0

Bei Verwendung von werden die Ereignisse baselayerchange, overlayadd und overlayremove auf Ihrer Karteninstanz ausgelöst. In Ihrem Fall benötigen Sie das Ereignis baselayerchange:

Wird ausgelöst, wenn die Basisschicht durch das Schichtsteuerelement geändert wird.

Referenz: 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. 
}); 
Verwandte Themen