Add/remove layer to switcher
This commit is contained in:
parent
be7db71f4f
commit
3ad862848a
1 changed files with 40 additions and 13 deletions
|
|
@ -88,24 +88,43 @@ BR.LayersTab = L.Control.Layers.extend({
|
||||||
};
|
};
|
||||||
var treeData = toJsTree(structure);
|
var treeData = toJsTree(structure);
|
||||||
|
|
||||||
var onSelectNode = L.bind(function (e, data) {
|
var onSelectNode = function (e, data) {
|
||||||
//console.log('selected: ', data);
|
|
||||||
console.log('selected: ' + data.node.text);
|
|
||||||
var layerData = layerIndex[data.node.id];
|
var layerData = layerIndex[data.node.id];
|
||||||
|
|
||||||
this.showLayer(this.createLayer(layerData));
|
this.showLayer(this.createLayer(layerData));
|
||||||
}, this);
|
};
|
||||||
|
|
||||||
|
var onCheckNode = function (e, data) {
|
||||||
|
var layerData = layerIndex[data.node.id];
|
||||||
|
var layer = this.createLayer(layerData);
|
||||||
|
var name = layerData.properties.name;
|
||||||
|
var overlay = layerData.properties.overlay;
|
||||||
|
|
||||||
|
if (overlay) {
|
||||||
|
this.addOverlay(layer, name);
|
||||||
|
} else {
|
||||||
|
this.addBaseLayer(layer, name);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var onUncheckNode = function (e, data) {
|
||||||
|
var obj = this._getLayerObjByName(data.node.text);
|
||||||
|
if (!obj) return;
|
||||||
|
|
||||||
|
if (this._map.hasLayer(obj.layer)) {
|
||||||
|
this._map.removeLayer(obj.layer);
|
||||||
|
if (!obj.overlay && this._layers.length > 0) {
|
||||||
|
this._map.addLayer(this._layers[0].layer);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.removeLayer(obj.layer);
|
||||||
|
};
|
||||||
|
|
||||||
L.DomUtil.get('layers-control-wrapper').appendChild(this._form);
|
L.DomUtil.get('layers-control-wrapper').appendChild(this._form);
|
||||||
$('#optional-layers-tree')
|
$('#optional-layers-tree')
|
||||||
.on('select_node.jstree', onSelectNode)
|
.on('select_node.jstree', L.bind(onSelectNode, this))
|
||||||
.on('check_node.jstree', function (e, data) {
|
.on('check_node.jstree', L.bind(onCheckNode, this))
|
||||||
//console.log('selected: ', data);
|
.on('uncheck_node.jstree', L.bind(onUncheckNode, this))
|
||||||
console.log('checked: ' + data.node.text);
|
|
||||||
})
|
|
||||||
.on('uncheck_node.jstree', function (e, data) {
|
|
||||||
//console.log('selected: ', data);
|
|
||||||
console.log('unchecked: ' + data.node.text);
|
|
||||||
})
|
|
||||||
.on('ready.jstree', function (e, data) {
|
.on('ready.jstree', function (e, data) {
|
||||||
data.instance.open_all();
|
data.instance.open_all();
|
||||||
})
|
})
|
||||||
|
|
@ -129,6 +148,14 @@ BR.LayersTab = L.Control.Layers.extend({
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_getLayerObjByName: function (name) {
|
||||||
|
for (var i = 0; i < this._layers.length; i++) {
|
||||||
|
if (this._layers[i] && this._layers[i].name === name) {
|
||||||
|
return this._layers[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
createLayer: function (layerData) {
|
createLayer: function (layerData) {
|
||||||
var props = layerData.properties;
|
var props = layerData.properties;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue