diff --git a/js/control/Control.Layers.js b/js/control/Control.Layers.js index bcff8f0..5a92547 100644 --- a/js/control/Control.Layers.js +++ b/js/control/Control.Layers.js @@ -79,6 +79,21 @@ BR.ControlLayers = L.Control.Layers.extend({ var obj = baseLayers[index]; this.activateLayer(obj.layer); + }, + + _addLayer: function (layer, name, overlay) { + L.Control.Layers.prototype._addLayer.call(this, layer, name, overlay); + + // override z-index assignment to fix that base layers added later + // are on top of overlays; set all base layers to 0 + if (this.options.autoZIndex && layer.setZIndex) { + if (!overlay) { + // undo increase in super method + this._lastZIndex--; + + layer.setZIndex(0); + } + } } }); \ No newline at end of file diff --git a/js/control/LayersTab.js b/js/control/LayersTab.js index 1798035..560cc96 100644 --- a/js/control/LayersTab.js +++ b/js/control/LayersTab.js @@ -289,7 +289,11 @@ BR.LayersTab = BR.ControlLayers.extend({ createLayer: function (layerData) { var layer = this.layersConfig.createLayer(layerData); - layer.options.zIndex = this._lastZIndex + 1; + var overlay = layerData.properties.overlay; + + // preview z-index, like in BR.ControlLayers._addLayer + layer.options.zIndex = overlay ? this._lastZIndex + 1 : 0; + return layer; },