1.问题提出
在GIS开发中,每一个图层五花八门的配图,那么配图得表示是什么东西。这时,图例就上场了。GIS的图层开关也能和图例一并开关显示。这时候leaflet实现的方式可以是可以利用图层的加入与移除回调来实现。
2.回调事件
来看leaflet的图层添加和移除代码。
添加图层代码。
_addLayer: function (layer, name, overlay) {
if (this._map) {
layer.on('add remove', this._onLayerChange, this);
}
this._layers.push({
layer: layer,
name: name,
overlay: overlay
});
if (this.options.sortLayers) {
this._layers.sort(bind(function (a, b) {
return this.options.sortFunction(a.layer, b.layer, a.name, b.name);
}, this));
}
if (this.options.autoZIndex && layer.setZIndex) {
this._lastZIndex++;
layer.setZIndex(this._lastZIndex);
}
this._expandIfNotCollapsed();
},
移除图层代码
removeLayer: function (layer) {
layer.off('add remove', this._onLayer