From b9f68eadd170e469314430d7bbdb4246f65451cd Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Thu, 17 Jun 2021 11:31:31 +0800
Subject: [PATCH] 目录树调整添加图层管理等
---
widgets/Layermanagement/Widget.js | 477 -----------------------------------------------------------
1 files changed, 2 insertions(+), 475 deletions(-)
diff --git a/widgets/Layermanagement/Widget.js b/widgets/Layermanagement/Widget.js
index bcea65b..ea685a3 100644
--- a/widgets/Layermanagement/Widget.js
+++ b/widgets/Layermanagement/Widget.js
@@ -28,30 +28,11 @@
return declare([BaseWidget], {
baseClass: 'jimu-widget-Layermanagement',
name: 'Layermanagement',
- layers: {},
- LayerzNodes: [],
- entitys: {},
- // 存放id的数组
- layermanagementId: [],
startup: function () {
var that = this;
// 暴露在外的接口
topic.subscribe("closeZtree", lang.hitch(this, this.closeZtreeBox));
- this.inherited(arguments);
-
- $('#menu_switch span').click(function () {
- if ($('#ztree_container').is(":hidden")) {
- $('#ztree_container').stop().show();
- } else {
- $('#ztree_container').stop().hide();
- }
- topic.publish('closeMap', this.name);
- topic.publish('closeTool', this.name);
- });
-
- $('#close_tag_bar').click(function () {
- $('#ztree_container').stop().hide();
- });
+
},
closeZtreeBox: function (item) {
@@ -61,131 +42,7 @@
},
onOpen: function () {
- var self = this;
- this.map.scene.globe.depthTestAgainstTerrain = false;
- $.ajax({
- url: 'widgets/Layermanagement/datas.json',
- dataType: 'json',
- type: 'post',
- success: function (data) {
- setTimeout(function () {
- var parentOpen = null;
- var parentCheck = null;
- for (var i = 0; i < data.data.length; i++) {
- data.data[i].isOpen == 1 ? parentOpen = false : parentOpen = true;
- data.data[i].isCheck == 1 ? parentCheck = false : parentCheck = true;
- self.LayerzNodes.push({
- id: data.data[i].id,
- pId: data.data[i].parentId,
- name: data.data[i].name,
- url: data.data[i].url,
- open: parentOpen,
- nocheck: parentCheck,
- });
- // 存储数据得
- var result = null;
- // 存储url最后面数字的
- var layersNumber = null;
- // 存储 true, false
- var layerShow = null;
- // 存储除数字外的URL
- var layersUrl = null;
- for (var j = 0; j < data.data[i].children.length; j++) {
- result = data.data[i].children[j];
- result.isCheck == 1 ? layerShow = false : layerShow = true;
- self.LayerzNodes.push({
- id: result.id,
- pId: result.parentId,
- name: result.name,
- checked: layerShow,
- type: result.type,
- icon: result.icon,
- rendering: result.rendering,
- url: result.url,
- showheight: result.showheight
- });
-
-
- // 从服务上 并且是服务端渲染的 的 就去添加图层
- if (result.type == 1 && result.rendering == 1) {
- layersNumber = result.url.substring(result.url.length - 1);
- layersUrl = result.url.substring(0, result.url.length - 2);
- var layersObject = {
- icon: result.icon,
- label: result.name,
- show: layerShow,
- type: result.type,
- url: result.url,
- layerID:result.layerID,
- showheight: result.showheight
- };
- if (!isNaN(layersNumber)) {
- layersObject.layers = layersNumber;
- layersObject.url = layersUrl;
- }
- self.createLayers(layersObject);
- } else if (result.type == 0 && result.rendering == 0) { // 从 接口上读取的数据 并且是 本地渲染,就去添加entity实体
- layerShow && self.createEntity({
- url: result.url,
- entityName: result.name,
- img: result.icon,
- delete: !layerShow,
- showheight: result.showheight
- });
- } else if (result.type == 1 && result.rendering == 0) {
- layerShow && self.serviceEntity({
- url: result.url,
- oname: result.name,
- img: result.icon,
- delete: !layerShow,
- showheight: result.showheight
- });
- }
- }
- }
-
- // 获取现有图层
- var imageryLayers = self.map.scene.globe.imageryLayers;
-
- for (var i = 0; i < imageryLayers.length; i++) {
- var layer = imageryLayers.get(i);
- self.layers[layer.label] = layer;
- // self.layers[layer.label].show = true;
- }
-
- var setting = {
- view: {
- selectedMulti: false
- },
- check: {
- enable: true
- },
- data: {
- simpleData: {
- enable: true
- }
- },
- callback: {
- onCheck: onCheck,
- }
- };
- $.fn.zTree.init($("#treeDemo"), setting, self.LayerzNodes);
- $("#treeDemo li ").on('click', 'a', function () {
- return false;
- });
-
- function onCheck(e, treeId, treeNode) {
- if (treeNode.isParent) {
- treeNode.children.forEach(function (item, index) {
- self.selectiveLoading(item);
- });
- return;
- }
- self.selectiveLoading(treeNode);
- }
- }, 2000);
- }
- });
+
},
onClose: function () {
@@ -209,336 +66,6 @@
//todo
//do something before this func
this.inherited(arguments);
- },
-
- // 选中与否,判断后进行添加或者删除实体
- selectiveLoading: function (treeNodeItem) {
-
- var self = this;
- if (treeNodeItem.type == 1 && treeNodeItem.rendering == 1) {
- self.layers[treeNodeItem.name].show = treeNodeItem.checked;
- } else if (treeNodeItem.type == 0 && treeNodeItem.rendering == 0) {
- self.createEntity({
- url: treeNodeItem.url,
- entityName: treeNodeItem.name,
- img: treeNodeItem.icon,
- delete: !treeNodeItem.checked,
- showheight: treeNodeItem.showheight
- });
- } else if (treeNodeItem.type == 1 && treeNodeItem.rendering == 0) {
- self.serviceEntity({
- url: treeNodeItem.url,
- oname: treeNodeItem.name,
- img: treeNodeItem.icon,
- delete: !treeNodeItem.checked,
- showheight: treeNodeItem.showheight
- });
- }
- },
-
- // 读取服务,并且服务端加载,添加图层
- createLayers: function (layerConfig) {
- var layMap = {
- '1': 'ArcGisMapServerImageryProvider'
- };
- var layers;
- if (false) {
-
- } else {
-
- /*var layers = new Cesium[layMap[layerConfig.type]](layerConfig);
- var imageryLayers = this.map.imageryLayers;
- var olayer = imageryLayers.addImageryProvider(layers);*/
-
- //创建provider。
- var provider = new Cesium.SuperMapImageryProvider({
- url: layerConfig.url,
- layersID: layerConfig.layerID
- });
-
- //创建影像图层。
- var olayer = this.map.imageryLayers.addImageryProvider(provider);
-
- olayer.show = layerConfig.show;
- olayer.label = layerConfig.label;
- }
- },
-
- // 创建entity实体
- createEntity: function (entityConfig) {
- var self = this;
- $.ajax({
- url: entityConfig.url,
- type: 'GET',
- dataType: 'JSON',
- success: function (data) {
- /*if (data.data.length < 100) {
- labelHeight = 260000;
- } else if (data.data.length >= 100 && data.data.length < 250) {
- labelHeight = 220000;
- } else if (data.data.length >= 250 && data.data.length < 500) {
- labelHeight = 180000;
- } else if (data.data.length >= 500) {
- labelHeight = 140000;
- }*/
- var site = "siteCode";
- if (entityConfig.entityName == "山洪隐患点") {
- var site = "siteId";
- }
- data.data.forEach(function (item, index) {
- var id = item[site] + entityConfig.entityName + item['lgtd'];
- var angle = "";
- if (typeof (item.angle) != "undefined") {
- angle = item.angle;
- }
- // 移除entity实体
- if (entityConfig.delete == true) {
- self.map.entities.removeById(id);
- if (self.layermanagementId.indexOf(id) != -1) {
- self.layermanagementId.splice(id, 1);
- }
- return;
- }
- self.layermanagementId.push(id);
- // 添加entity实体
- self.map.entities.add({
- id: id, // 实体ID
- name: item.siteName, // 实体名称
- position: Cesium.Cartesian3.fromDegrees(Number(item.lgtd), Number(item.lttd)), // x,y 实体经纬度
- label: {
- show: true,
- text: item.siteName, // text 与实体相关的文字
- font: "700 14px '黑体'",
- fillColor: Cesium.Color.DEEPSKYBLUE,
- // backgroundColor: Cesium.Color.DEEPSKYBLUE,
- style: Cesium.LabelStyle.FILL_AND_OUTLINE,
- outlineWidth: 2,
- outlineColor: Cesium.Color.fromBytes(255, 255, 255), // 文字轮廓的颜色
- verticalOrigin: Cesium.VerticalOrigin.CENTER,//垂直位置
- horizontalOrigin: Cesium.HorizontalOrigin.LEFT,//水平位置
- pixelOffset: new Cesium.Cartesian2(10, -10), // 文字位置
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
- distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1, entityConfig.showheight),
- disableDepthTestDistance: Number.POSITIVE_INFINITY
- },
- billboard: {
- show: true,
- image: entityConfig.img,
- // image: entityConfig.img,
- width: 20,
- height: 20,
- clampToGround: true,
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
- disableDepthTestDistance: Number.POSITIVE_INFINITY,
- rotation: Cesium.Math.toRadians(angle),
- }
- });
- /*self.map.entities.add({
- id: item[site] + entityConfig.entityName, // 实体ID
- name: item.siteName, // 实体名称
- position: Cesium.Cartesian3.fromDegrees(item.lgtd, item.lttd), // x,y 实体经纬度
- label: {
- show: true,
- text: item.siteName, // text 与实体相关的文字
- font: "700 16px '黑体'",
- fillColor: Cesium.Color.DEEPSKYBLUE,
- // backgroundColor: Cesium.Color.DEEPSKYBLUE,
- style: Cesium.LabelStyle.FILL_AND_OUTLINE,
- outlineWidth: 3,
- outlineColor: Cesium.Color.fromBytes(255, 255, 255), // 文字轮廓的颜色
- verticalOrigin: Cesium.VerticalOrigin.CENTER,//垂直位置
- horizontalOrigin: Cesium.HorizontalOrigin.LEFT,//水平位置
- pixelOffset: new Cesium.Cartesian2(10, -10), // 文字位置
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
- distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1, entityConfig.showheight),
- disableDepthTestDistance: Number.POSITIVE_INFINITY
- },
- ellipse: {
- show: true,
- semiMajorAxis: 200,
- semiMinorAxis: 200,
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
-
- rotation: Cesium.Math.toRadians(angle),
- material: new Cesium.ImageMaterialProperty({
- image: entityConfig.img
- }),
- }
- })*/
- });
- }
- });
- },
-
- // 读取服务,并本地加载
- serviceEntity: function (entityConfig) {
- var self = this;
- $.ajax({
- url: entityConfig.url + "/query",
- type: 'get',
- data: {
- where: '1=1',
- returnGeometry: true,
- outFields: "*",
- f: "pjson"
- },
- dataType: 'JSON',
- success: function (data) {
- if (data.geometryType == "esriGeometryPoint") {
- self.geometryPoints({
- data: data,
- img: entityConfig.img,
- delete: entityConfig.delete,
- showheight: entityConfig.showheight
- });
- } else if (data.geometryType == 'esriGeometryPolyline') {
- self.geometryPolylines({
- data: data,
- img: entityConfig.img,
- delete: entityConfig.delete,
- showheight: entityConfig.showheight
- });
- } else if (data.geometryType == 'esriGeometryPolygon') {
- self.geometryPolygon({
- data: data,
- img: entityConfig.img,
- delete: entityConfig.delete,
- showheight: entityConfig.showheight
- });
- }
- }
- });
- },
-
- // 读取服务,并且在本地渲染的,加载实体点方法
- geometryPoints: function (entityConfig) {
- var self = this;
- var labelHeight = null;
- if (entityConfig.data.features.length < 100) {
- labelHeight = 260000;
- } else if (entityConfig.data.features.length >= 100 && entityConfig.data.features.length < 250) {
- labelHeight = 220000;
- } else if (entityConfig.data.features.length >= 250 && entityConfig.data.features.length < 500) {
- labelHeight = 180000;
- } else if (entityConfig.data.features.length >= 500) {
- labelHeight = 140000;
- }
- for (var o = 0; o < entityConfig.data.features.length; o++) {
- if (entityConfig.delete == true) {
- self.map.entities.removeById(JSON.stringify(entityConfig.data.features[o].attributes));
- if (self.layermanagementId.indexOf(JSON.stringify(entityConfig.data.features[o].attributes)) != -1) {
- self.layermanagementId.splice(self.layermanagementId.indexOf(JSON.stringify(entityConfig.data.features[o].attributes)), 1);
- }
- continue;
- }
-
- self.layermanagementId.push(JSON.stringify(entityConfig.data.features[o].attributes));
-
- self.map.entities.add({
- id: JSON.stringify(entityConfig.data.features[o].attributes), // 实体ID
- name: entityConfig.data.features[o].attributes[entityConfig.data.displayFieldName], // 实体名称
- position: Cesium.Cartesian3.fromDegrees(entityConfig.data.features[o].geometry.x, entityConfig.data.features[o].geometry.y), // x,y 实体经纬度
- show: true,
- //字体标签样式
- label: {
- show: true,
- text: entityConfig.data.features[o].attributes[entityConfig.data.displayFieldName], // text 与实体相关的文字
- font: "700 14px '黑体'",
- fillColor: Cesium.Color.DEEPSKYBLUE,
- style: Cesium.LabelStyle.FILL_AND_OUTLINE,
- outlineWidth: 2,
- outlineColor: Cesium.Color.fromBytes(255, 255, 255), // 文字轮廓的颜色
- verticalOrigin: Cesium.VerticalOrigin.CENTER,//垂直位置
- horizontalOrigin: Cesium.HorizontalOrigin.LEFT,//水平位置
- pixelOffset: new Cesium.Cartesian2(14, -10), // 文字位置
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
- distanceDisplayCondition: new Cesium.DistanceDisplayCondition(1, entityConfig.showheight),
- disableDepthTestDistance: Number.POSITIVE_INFINITY
- },
- billboard: {
- show: true,
- image: entityConfig.img,
- width: 20,
- height: 20,
- heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
- disableDepthTestDistance: Number.POSITIVE_INFINITY
- }
- });
- }
- },
-
- // 读取服务,并且在本地渲染的,加载实体线段方法
- geometryPolylines: function (entityConfig) {
- var self = this;
- var position = [];
- for (var o = 0; o < entityConfig.data.features.length; o++) {
- for (var i = 0; i < entityConfig.data.features[o].geometry.paths[0].length; i++) {
- position.push(entityConfig.data.features[o].geometry.paths[0][i][0], entityConfig.data.features[o].geometry.paths[0][i][1]);
- }
- if (entityConfig.delete == true) {
- self.map.entities.removeById(JSON.stringify(entityConfig.data.features[o].attributes));
- if (self.layermanagementId.indexOf(JSON.stringify(entityConfig.data.features[o].attributes)) != -1) {
- self.layermanagementId.splice(self.layermanagementId.indexOf(JSON.stringify(entityConfig.data.features[o].attributes)), 1);
- }
- continue;
- }
- self.layermanagementId.push(JSON.stringify(entityConfig.data.features[o].attributes));
- // 绘制线段的
- self.map.entities.add({
- id: JSON.stringify(entityConfig.data.features[o].attributes),
- show: true,
- polyline: {
- positions: Cesium.Cartesian3.fromDegreesArray(position),
- width: 20,
- material: new Cesium.ImageMaterialProperty({
-
- // 明天需要修改,备注。。!!!!
- image: entityConfig.img,
- // image: 'images/1111.png',
- repeat: new Cesium.Cartesian2(position.length / 8, 1),
- // transparent: true,
- }),
- // granularity: Cesium.Math.RADIANS_PER_DEGREE,
- // arcType: Cesium.ArcType.RHUMB,
- // classificationType: Cesium.ClassificationType.TERRAIN,
- clampToGround: true,
- },
- });
- position = [];
- }
-
- },
-
- // 读取服务,并且在本地渲染的,加载实体多边形方法
- geometryPolygon: function (entityConfig) {
- var self = this;
- var position = [];
- for (var o = 0; o < entityConfig.data.features.length; o++) {
- for (var i = 0; i < entityConfig.data.features[o].geometry.rings[0].length; i++) {
- position.push(entityConfig.data.features[o].geometry.rings[0][i][0], entityConfig.data.features[o].geometry.rings[0][i][1]);
- }
- if (entityConfig.delete == true) {
- self.map.entities.removeById(JSON.stringify(entityConfig.data.features[o].attributes));
- if (self.layermanagementId.indexOf(JSON.stringify(entityConfig.data.features[o].attributes)) != -1) {
- self.layermanagementId.splice(self.layermanagementId.indexOf(JSON.stringify(entityConfig.data.features[o].attributes)), 1);
- }
- continue;
- }
- self.layermanagementId.push(JSON.stringify(entityConfig.data.features[o].attributes));
- // 绘制多边形的
- self.map.entities.add({
- id: JSON.stringify(entityConfig.data.features[o].attributes),
- show: true,
- polygon: {
- hierarchy: {positions: Cesium.Cartesian3.fromDegreesArray(position)},
- material: new Cesium.ImageMaterialProperty({
- image: entityConfig.img
- }),
- clampToGround: true,
- },
- });
- position = [];
- }
}
});
});
\ No newline at end of file
--
Gitblit v1.9.3