Skip to content

Commit 4ec9b9b

Browse files
authored
Merge pull request #2 from VasavanThiru/add_list_layer_to_splitmap
changes for add list of layer to splitmap
2 parents 1b4c082 + ac32e85 commit 4ec9b9b

1 file changed

Lines changed: 41 additions & 68 deletions

File tree

src/index.js

Lines changed: 41 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,9 @@ L.Control.SplitMap = L.Control.extend({
5656
},
5757

5858
initialize: function (leftLayers, rightLayers, options) {
59-
this.setLeftLayers(leftLayers)
60-
this.setRightLayers(rightLayers)
59+
this._leftLayers = asArray(leftLayers)
60+
this._rightLayers = asArray(rightLayers)
61+
this._updateClip()
6162
L.setOptions(this, options)
6263
},
6364

@@ -74,9 +75,7 @@ L.Control.SplitMap = L.Control.extend({
7475
addTo: function (map) {
7576
this.remove()
7677
this._map = map
77-
7878
var container = this._container = L.DomUtil.create('div', 'leaflet-sbs', map._controlContainer)
79-
8079
this._divider = L.DomUtil.create('div', 'leaflet-sbs-divider', container)
8180
var range = this._range = L.DomUtil.create('input', 'leaflet-sbs-range', container)
8281
range.type = 'range'
@@ -86,94 +85,68 @@ L.Control.SplitMap = L.Control.extend({
8685
range.value = 0.5
8786
range.style.paddingLeft = range.style.paddingRight = this.options.padding + 'px'
8887
this._addEvents()
89-
this._updateLayers()
88+
this._updateClip()
9089
return this
9190
},
9291

9392
remove: function () {
9493
if (!this._map) {
9594
return this
9695
}
97-
if (this._leftLayer.getContainer) {
98-
this._leftLayer.getContainer().style.clip = ""
99-
} else {
100-
this._leftLayer.getPane().style.clip = ""
101-
}
102-
if (this._rightLayer.getContainer) {
103-
this._rightLayer.getContainer().style.clip = ""
104-
} else {
105-
this._rightLayer.getPane().style.clip = ""
106-
}
107-
96+
this._leftLayers.forEach((left_layer)=> {
97+
if (left_layer.getContainer) {
98+
left_layer.getContainer().style.clip = ""
99+
}
100+
else {
101+
left_layer.getPane().style.clip = ""
102+
}
103+
})
104+
105+
this._rightLayers.forEach((right_layer)=>{
106+
if (right_layer.getContainer) {
107+
right_layer.getContainer().style.clip = ""
108+
}
109+
else {
110+
right_layer.getPane().style.clip = ""
111+
}
112+
})
108113
this._removeEvents()
109114
L.DomUtil.remove(this._container)
110-
111115
this._map = null
112-
113-
return this
114-
},
115-
116-
setLeftLayers: function (leftLayers) {
117-
this._leftLayers = asArray(leftLayers)
118-
this._updateLayers()
119-
return this
120-
},
121-
122-
setRightLayers: function (rightLayers) {
123-
this._rightLayers = asArray(rightLayers)
124-
this._updateLayers()
125116
return this
126117
},
127118

128119
_updateClip: function () {
120+
if (!this._map) {
121+
return this
122+
}
129123
var map = this._map
130124
var nw = map.containerPointToLayerPoint([0, 0])
131125
var se = map.containerPointToLayerPoint(map.getSize())
132126
var clipX = nw.x + this.getPosition()
133127
var dividerX = this.getPosition()
134-
135128
this._divider.style.left = dividerX + 'px'
136129
this.fire('dividermove', {x: dividerX})
137130
var clipLeft = 'rect(' + [nw.y, clipX, se.y, nw.x].join('px,') + 'px)'
138131
var clipRight = 'rect(' + [nw.y, se.x, se.y, clipX].join('px,') + 'px)'
139-
if (this._leftLayer.getContainer) {
140-
this._leftLayer.getContainer().style.clip = clipLeft
141-
} else {
142-
this._leftLayer.getPane().style.clip = clipLeft
143-
}
144-
if (this._rightLayer.getContainer) {
145-
this._rightLayer.getContainer().style.clip = clipRight
146-
} else {
147-
this._rightLayer.getPane().style.clip = clipRight
148-
}
149-
},
150132

151-
_updateLayers: function () {
152-
if (!this._map) {
153-
return this
154-
}
155-
var prevLeft = this._leftLayer
156-
var prevRight = this._rightLayer
157-
this._leftLayer = this._rightLayer = null
158-
this._leftLayers.forEach(function (layer) {
159-
if (this._map.hasLayer(layer)) {
160-
this._leftLayer = layer
161-
}
162-
}, this)
163-
this._rightLayers.forEach(function (layer) {
164-
if (this._map.hasLayer(layer)) {
165-
this._rightLayer = layer
166-
}
167-
}, this)
168-
if (prevLeft !== this._leftLayer) {
169-
prevLeft && this.fire('leftlayerremove', {layer: prevLeft})
170-
this._leftLayer && this.fire('leftlayeradd', {layer: this._leftLayer})
171-
}
172-
if (prevRight !== this._rightLayer) {
173-
prevRight && this.fire('rightlayerremove', {layer: prevRight})
174-
this._rightLayer && this.fire('rightlayeradd', {layer: this._rightLayer})
175-
}
176-
this._updateClip()
133+
this._leftLayers.forEach((left_layer)=> {
134+
if (left_layer.getContainer) {
135+
left_layer.getContainer().style.clip = clipLeft
136+
}
137+
else {
138+
left_layer.getPane().style.clip = clipLeft
139+
}
140+
})
141+
142+
this._rightLayers.forEach((right_layer)=>{
143+
if (right_layer.getContainer) {
144+
right_layer.getContainer().style.clip = clipRight
145+
}
146+
else {
147+
right_layer.getPane().style.clip = clipRight
148+
}
149+
})
177150
},
178151

179152
_addEvents: function () {

0 commit comments

Comments
 (0)