nakarte

Source code of https://map.sikmir.ru (fork)
git clone git://git.sikmir.ru/nakarte
Log | Files | Refs | LICENSE

commit c19be39ac231a2e2fb394ffc001e8cb11e2a9efd
parent 38ac568f87c623ecfad8655a660fa4e04ce968d8
Author: Sergej Orlov <wladimirych@gmail.com>
Date:   Tue, 18 Apr 2017 00:28:47 +0300

[jnx] get layer for jnx from layers, not from map object. Order of layers in map can be wrong after adding layer from config

Diffstat:
Msrc/lib/leaflet.control.jnx/index.js | 26+++++++++-----------------
1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/src/lib/leaflet.control.jnx/index.js b/src/lib/leaflet.control.jnx/index.js @@ -22,24 +22,17 @@ L.Control.JNX = L.Control.extend({ }, getLayerForJnx: function() { - let selectedLayer = null; - this._map.eachLayer((layer) => { - if (layer.options && layer.options.jnx) { - selectedLayer = layer; + let selectedLayer = {}; + for (let layerRec of this._layersControl._layers) { + let layer = layerRec.layer; + if (this._map.hasLayer(layer) && layer.options && layer.options.jnx) { + selectedLayer = { + layer, + layerName: layerRec.name } } - ); - return selectedLayer; - }, - - getLayerName: function(layer) { - const layerRec = this._layersControl._getLayer(L.stamp(layer)); - if (layerRec) { - return layerRec.name; - } else { - return 'Unknown layer'; } - + return selectedLayer; }, estimateTilesCount: function(maxZoom) { @@ -54,11 +47,10 @@ L.Control.JNX = L.Control.extend({ }, makeMenuItems: function() { - const layer = this.getLayerForJnx(); + const {layer, layerName} = this.getLayerForJnx(); if (!layer) { return [{text: 'No supported layer'}]; } - const layerName = this.getLayerName(layer); const maxLevel = layer.options.maxNativeZoom || layer.options.maxZoom || 18; const minLevel = Math.max(0, maxLevel - 6);