commit 57e4143b83560fdc70242306ccbd519167e36341
parent 34d48fb4d1a2f91270b9327e1d177ba192230ec4
Author: Sergey Orlov <wladimirych@gmail.com>
Date: Sat, 12 Dec 2020 21:30:51 +0100
jnx: make getLayerForJnx() aware of groupped layers
Diffstat:
2 files changed, 21 insertions(+), 9 deletions(-)
diff --git a/src/layers.js b/src/layers.js
@@ -903,7 +903,11 @@ class LayerGroupWithOptions extends L.LayerGroup {
),
new LayerCutlineOverview(getCutline('france'), 5, 'France Topo 250m (zoom ≥ 6)'),
],
- {code: 'Ft', isOverlay: true}
+ {
+ code: 'Ft',
+ isOverlay: true,
+ isWrapper: true,
+ }
),
},
{
@@ -932,6 +936,7 @@ class LayerGroupWithOptions extends L.LayerGroup {
{
code: 'Gbt',
isOverlay: true,
+ isWrapper: true,
}
),
},
@@ -996,6 +1001,7 @@ class LayerGroupWithOptions extends L.LayerGroup {
{
code: 'St',
isOverlay: true,
+ isWrapper: true,
}
),
},
diff --git a/src/lib/leaflet.control.jnx/index.js b/src/lib/leaflet.control.jnx/index.js
@@ -22,17 +22,23 @@ L.Control.JNX = L.Control.extend({
},
getLayerForJnx: function() {
- let selectedLayer = {};
- for (let layerRec of this._layersControl._layers) {
+ for (let layerRec of this._layersControl._layers.slice().reverse()) {
let layer = layerRec.layer;
- if (this._map.hasLayer(layer) && layer.options && layer.options.jnx) {
- selectedLayer = {
- layer,
- layerName: layerRec.name
- };
+ if (!this._map.hasLayer(layer) || !layer.options) {
+ continue;
+ }
+ if (layer.options.isWrapper) {
+ const layerName = layerRec.name;
+ for (const subLayer of layer.getLayers().slice().reverse()) {
+ if (subLayer.options?.jnx) {
+ return {layer: subLayer, layerName};
+ }
+ }
+ } else if (layer.options.jnx) {
+ return {layer, layerName: layerRec.name};
}
}
- return selectedLayer;
+ return {};
},
estimateTilesCount: function(maxZoom) {