Skip to content
This repository was archived by the owner on Sep 20, 2019. It is now read-only.

Commit 6cea2ef

Browse files
committed
refactor(layers): add z-index watch for ordering layers
1 parent 9bbe343 commit 6cea2ef

File tree

7 files changed

+68
-32
lines changed

7 files changed

+68
-32
lines changed

dist/ui-leaflet.js

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* ui-leaflet 1.0.0 2016-06-13
2+
* ui-leaflet 1.0.0 2016-06-24
33
* ui-leaflet - An AngularJS directive to easily interact with Leaflet maps
44
* git: https://github.com/angular-ui/ui-leaflet
55
*/
@@ -3921,7 +3921,7 @@ angular.module('ui-leaflet').directive('layercontrol', ["$filter", "leafletLogge
39213921
leafletScope.$watch('layers.overlays', function (newOverlayLayers) {
39223922
var overlaysArray = [];
39233923
var groupVisibleCount = {};
3924-
leafletData.getLayers().then(function (leafletLayers) {
3924+
leafletData.getLayers().then(function () {
39253925
var key;
39263926
for (key in newOverlayLayers) {
39273927
var layer = newOverlayLayers[key];
@@ -3953,9 +3953,11 @@ angular.module('ui-leaflet').directive('layercontrol', ["$filter", "leafletLogge
39533953
groupVisibleCount[layer.group].visibles++;
39543954
}
39553955
}
3956-
if (isDefined(layer.index) && leafletLayers.overlays[key].setZIndex) {
3956+
/*
3957+
if(isDefined(layer.index) && leafletLayers.overlays[key].setZIndex) {
39573958
leafletLayers.overlays[key].setZIndex(newOverlayLayers[key].index);
39583959
}
3960+
*/
39593961
}
39603962

39613963
for (key in groupVisibleCount) {
@@ -4139,6 +4141,10 @@ angular.module('ui-leaflet').directive('layers', ["leafletLogger", "$q", "leafle
41394141
if (newOverlayLayers[newName].visible === true) {
41404142
safeAddLayer(map, leafletLayers.overlays[newName]);
41414143
}
4144+
4145+
if (isDefined(newOverlayLayers[newName].index) && leafletLayers.overlays[newName].setZIndex) {
4146+
leafletLayers.overlays[newName].setZIndex(newOverlayLayers[newName].index);
4147+
}
41424148
} else {
41434149
// check for the .visible property to hide/show overLayers
41444150
if (newOverlayLayers[newName].visible && !map.hasLayer(leafletLayers.overlays[newName])) {
@@ -4149,14 +4155,20 @@ angular.module('ui-leaflet').directive('layers', ["leafletLogger", "$q", "leafle
41494155
}
41504156

41514157
// check for the .layerOptions.opacity property has changed.
4152-
if (newOverlayLayers[newName].layerOptions.opacity !== oldOverlayLayers[newName].layerOptions.opacity && map.hasLayer(leafletLayers.overlays[newName])) {
4158+
var ly = leafletLayers.overlays[newName];
4159+
if (map.hasLayer(leafletLayers.overlays[newName])) {
4160+
if (newOverlayLayers[newName].layerOptions.opacity !== oldOverlayLayers[newName].layerOptions.opacity) {
41534161

4154-
var ly = leafletLayers.overlays[newName];
4155-
if (isDefined(ly.setOpacity)) {
4156-
ly.setOpacity(newOverlayLayers[newName].layerOptions.opacity);
4162+
if (isDefined(ly.setOpacity)) {
4163+
ly.setOpacity(newOverlayLayers[newName].layerOptions.opacity);
4164+
}
4165+
if (isDefined(ly.getLayers) && isDefined(ly.eachLayer)) {
4166+
ly.eachLayer(changeOpacityListener(newOverlayLayers[newName].layerOptions.opacity));
4167+
}
41574168
}
4158-
if (isDefined(ly.getLayers) && isDefined(ly.eachLayer)) {
4159-
ly.eachLayer(changeOpacityListener(newOverlayLayers[newName].layerOptions.opacity));
4169+
4170+
if (isDefined(newOverlayLayers[newName].index) && ly.setZIndex && newOverlayLayers[newName].index !== oldOverlayLayers[newName].index) {
4171+
ly.setZIndex(newOverlayLayers[newName].index);
41604172
}
41614173
}
41624174
}

dist/ui-leaflet.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ui-leaflet.min.no-header.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ui-leaflet_dev_mapped.js

Lines changed: 21 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/ui-leaflet_dev_mapped.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/directives/layercontrol.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ angular.module('ui-leaflet').directive('layercontrol', function ($filter, leafle
215215
leafletScope.$watch('layers.overlays', function(newOverlayLayers) {
216216
var overlaysArray = [];
217217
var groupVisibleCount = {};
218-
leafletData.getLayers().then(function(leafletLayers) {
218+
leafletData.getLayers().then(function() {
219219
var key;
220220
for(key in newOverlayLayers) {
221221
var layer = newOverlayLayers[key];
@@ -247,9 +247,11 @@ angular.module('ui-leaflet').directive('layercontrol', function ($filter, leafle
247247
groupVisibleCount[layer.group].visibles++;
248248
}
249249
}
250+
/*
250251
if(isDefined(layer.index) && leafletLayers.overlays[key].setZIndex) {
251252
leafletLayers.overlays[key].setZIndex(newOverlayLayers[key].index);
252253
}
254+
*/
253255
}
254256

255257
for(key in groupVisibleCount) {

src/directives/layers.js

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,10 @@ angular.module('ui-leaflet').directive('layers', function (leafletLogger, $q, le
169169
if (newOverlayLayers[newName].visible === true) {
170170
safeAddLayer(map, leafletLayers.overlays[newName]);
171171
}
172+
173+
if(isDefined(newOverlayLayers[newName].index) && leafletLayers.overlays[newName].setZIndex) {
174+
leafletLayers.overlays[newName].setZIndex(newOverlayLayers[newName].index);
175+
}
172176
} else {
173177
// check for the .visible property to hide/show overLayers
174178
if (newOverlayLayers[newName].visible && !map.hasLayer(leafletLayers.overlays[newName])) {
@@ -179,15 +183,21 @@ angular.module('ui-leaflet').directive('layers', function (leafletLogger, $q, le
179183
}
180184

181185
// check for the .layerOptions.opacity property has changed.
182-
if (newOverlayLayers[newName].layerOptions.opacity !== oldOverlayLayers[newName].layerOptions.opacity &&
183-
map.hasLayer(leafletLayers.overlays[newName])) {
184-
185-
let ly = leafletLayers.overlays[newName];
186-
if(isDefined(ly.setOpacity)) {
187-
ly.setOpacity(newOverlayLayers[newName].layerOptions.opacity);
186+
let ly = leafletLayers.overlays[newName];
187+
if(map.hasLayer(leafletLayers.overlays[newName])) {
188+
if (newOverlayLayers[newName].layerOptions.opacity !== oldOverlayLayers[newName].layerOptions.opacity) {
189+
190+
if(isDefined(ly.setOpacity)) {
191+
ly.setOpacity(newOverlayLayers[newName].layerOptions.opacity);
192+
}
193+
if(isDefined(ly.getLayers) && isDefined(ly.eachLayer)) {
194+
ly.eachLayer(changeOpacityListener(newOverlayLayers[newName].layerOptions.opacity));
195+
}
188196
}
189-
if(isDefined(ly.getLayers) && isDefined(ly.eachLayer)) {
190-
ly.eachLayer(changeOpacityListener(newOverlayLayers[newName].layerOptions.opacity));
197+
198+
if(isDefined(newOverlayLayers[newName].index) && ly.setZIndex &&
199+
newOverlayLayers[newName].index !== oldOverlayLayers[newName].index) {
200+
ly.setZIndex(newOverlayLayers[newName].index);
191201
}
192202
}
193203
}

0 commit comments

Comments
 (0)