bmh_cesium/public/widgets/mapCompare/view.js
2025-03-10 07:23:50 +08:00

108 lines
3.1 KiB
JavaScript

//当前页面业务
var thisWidget;
var layersObj = {};
function initWidgetView(_thisWidget) {
thisWidget = _thisWidget;
//初始化树
var setting = {
check: {
enable: true
},
data: {
simpleData: {
enable: true
}
},
callback: {
onCheck: treeOverlays_onCheck,
onDblClick: treeOverlays_onDblClick
},
view: {
// addDiyDom: addOpacityRangeDom
}
};
var zNodes = [];
var layers = thisWidget.getLayers();
for (var i = layers.length - 1; i >= 0; i--) {
var item = layers[i];
var node = {
id: item.id,
pId: item.pid,
name: item.name,
_type: item.type,
_key: item._key,
};
if (item.hasLayer) {
node.icon = "../manageLayers/images/layer2.png";
node.checked = false;
if (item._parent)
node._parent = item._parent._key;
//记录图层
layersObj[node._key] = item;
zNodes.push(node);
} else {
node.icon = "../manageLayers/images/folder.png";
node.open = item.open == null ? true : item.open;
zNodes.push(node);
}
}
$.fn.zTree.init($("#treeOverlays_left"), setting, zNodes);
}
//viewEx图层渲染
function treeOverlays_onCheck(e, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj(treeId);
//获得所有改变check状态的节点
var changedNodes = zTree.getChangeCheckedNodes();
for (var i = 0; i < changedNodes.length; i++) {
var treeNode = changedNodes[i];
treeNode.checkedOld = treeNode.checked;
var layer = layersObj[treeNode._key];
if (layer == null) continue;
//显示隐藏透明度设置view
// if (treeNode.checked)
// $("#" + treeNode.tId + "_range").show();
// else
// $("#" + treeNode.tId + "_range").hide();
//单选的互斥的节点,特殊处理下。
if (treeNode._type == "terrain" && treeNode.checked) {
function filter(node) {
return node._type == "terrain" && node._key != treeNode._key;
}
var nodes = zTree.getNodesByFilter(filter, false, treeNode.getParentNode());
for (var nidx = 0; nidx < nodes.length; nidx++) {
nodes[nidx].checkedOld = false;
zTree.checkNode(nodes[nidx], false, true);
var layertmp = layersObj[nodes[nidx]._key];
compareView.updateLayerVisible(layertmp, false);
}
}
//处理图层显示隐藏
if (treeNode._parent) {
var parentLayer = layersObj[treeNode._parent];
thisWidget.updateLayerVisible(layer, treeNode.checked, parentLayer);
} else {
thisWidget.updateLayerVisible(layer, treeNode.checked);
}
}
}
function treeOverlays_onDblClick(event, treeId, treeNode) {
if (treeNode == null || treeNode._key == null) return;
var item = layersObj[treeNode._key];
thisWidget.centerAt(item);
}