From da0872bd7b0056b0cd35b90dff8f8cfce2024aba Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Fri, 25 Jun 2021 17:33:49 +0800
Subject: [PATCH] 部分修改

---
 widgets/spatialAnalysis/Widget.js |  254 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 168 insertions(+), 86 deletions(-)

diff --git a/widgets/spatialAnalysis/Widget.js b/widgets/spatialAnalysis/Widget.js
index 62e479c..e3673aa 100644
--- a/widgets/spatialAnalysis/Widget.js
+++ b/widgets/spatialAnalysis/Widget.js
@@ -45,11 +45,11 @@
 						classs: 'profileAnalysis-tool',
 						img: './images/addL/剖面分析.png'
 					}
-					// , {//做好静态,
-					// 	name: '建造实体',
-					// 	classs: 'modelDiagram-tool',
-					// 	img: './images/addL/pdpx.png'
-					// }
+					, {//做好静态,
+						name: '建造实体',
+						classs: 'modelDiagram-tool',
+						img: './images/addL/pdpx.png'
+					}
 					// , {//https://blog.csdn.net/supermapsupport/article/details/100134590
 					// 	//需要iServer发布成三维服务
 					// 	name: '坡度分析',
@@ -66,11 +66,21 @@
 						classs: 'digTheEarth-tool',
 						img: './images/addL/pdpx.png'
 					}
-					// , {//方量分析//做好
-					// 	name: '方量分析',
-					// 	classs: 'volumeAnalysis-tool',
-					// 	img: './images/addL/pdpx.png'
-					// }
+					, {//方量分析//做好
+						name: '方量分析',
+						classs: 'volumeAnalysis-tool',
+						img: './images/addL/pdpx.png'
+					},
+					{//通视分析
+						name: '通视分析',
+						classs: 'throughSee-tool',
+						img: './images/addL/pdpx.png'
+					},
+					{//平面裁剪
+						name: '平面裁剪',
+						classs: 'clippingPlanes-tool',
+						img: './images/addL/pdpx.png'
+					}
 				];
 
 				that.beginSpatialAnalysis(domHtmls);
@@ -121,6 +131,21 @@
 								classs: 'spatialQuery-tool',
 								img: './images/addL/pdpx.png'
 							}
+							, {//多边形裁剪
+								name: '多边形裁剪',
+								classs: 'polygonClipping-tool',
+								img: './images/addL/pdpx.png'
+							},
+							{//通视分析
+								name: '通视分析',
+								classs: 'throughSee-tool',
+								img: './images/addL/pdpx.png'
+							},
+							{//平面裁剪
+								name: '平面裁剪',
+								classs: 'clippingPlanes-tool',
+								img: './images/addL/pdpx.png'
+							}
 							,
 							{//建造模型
 								name: '建造模型',
@@ -158,6 +183,7 @@
 				})
 
 			},
+			promise: 'NODATA',
 			beginSpatialAnalysis: function (domHtmls) {
 				var that = this;
 				var domHtmls = domHtmls;
@@ -235,23 +261,33 @@
 					topic.publish('beginSpatialQuery', 'beginSpatialQuery');
 				})
 
-				// var datas = [//layui舍弃
-				// 	{
-				// 		title: '默认:天地图影像'
-				// 		// , child: [
-				// 		// 	{
-				// 		// 		title: 'menu item 3-2-1'
-				// 		// 		, id: 105
-				// 		// 	}
-				// 		// ]
-				// 	}
-				// ]
-				// // that.beginRool(datas);
-				// that.datas = datas;
-				// // 注册添加工具事件--规定操作图层
-				// topic.subscribe("addSelectLayerTool", lang.hitch(this, this.addSelectLayerTool));
-				// // 注册删除工具事件--规定操作图层
-				// topic.subscribe("removeSelectLayerTool", lang.hitch(this, this.removeSelectLayerTool));
+				//多边形裁剪
+				$('.polygonClipping-tool').click(function () {
+					that.closeOnceUse();
+					$(".jimu-widget-polygonClipping").show();
+					topic.publish('beginpolygonClipping', 'beginpolygonClipping');
+				})
+
+				//通视分析
+				$('.throughSee-tool').click(function () {
+					that.closeOnceUse();
+					$(".jimu-widget-throughSee").show();
+					topic.publish('beginthroughSee', 'beginthroughSee');
+				})
+
+				//平面裁剪
+				$('.clippingPlanes-tool').click(function () {
+					that.closeOnceUse();
+					// console.log(that.promise, 22222222222)
+					if (that.promise == 'NODATA') {
+						layer.tips('请选择三维倾斜数据中的图层支持!', '.SelectLayerTool', {
+							tips: [3, 'red']
+						});
+					} else {
+						$(".jimu-widget-clippingPlanes").show();
+						topic.publish('beginclippingPlanes', that.promise);
+					}
+				})
 
 				$('.SelectLayerTool').click(() => {
 					$('#SelectLayerToolItem').toggle();
@@ -265,7 +301,21 @@
 				this.liClick('默认:天地图影像', '默认:天地图影像');
 
 			},
-			liClick: function (itemid, name) {//点击事件
+			morenliClick: (itemid, name) => {
+				var dom = $('.SelectLayerTool');
+				dom.empty();
+				var str = `${name} <i class="layui-icon layui-icon-down layui-font-12"></i>`
+				dom.append(str);
+				// console.log('数据错误默认')
+				this.promise = 'NODATA';
+				//关闭平面裁剪
+				if ($(".jimu-widget-clippingPlanes").is(":visible")) {//判断是否隐藏
+					$(".jimu-widget-clippingPlanes").hide();
+					topic.publish('closesclippingPlanes');
+				}
+			},
+			liClick: function (itemid, name, ourdata = 1) {//点击事件
+				var that = this;
 				var liList = $(`[itemid='${itemid}s']`);
 				// console.log(liList);
 				liList.click(() => {
@@ -277,6 +327,47 @@
 					dom.append(str);
 					dom.attr("title", name);
 					$('#SelectLayerToolItem').hide();
+					// console.log(ourdata);
+					// 定位
+					// console.log(name)
+					if (ourdata != 1) {
+						// 	console.log('data')
+						if (ourdata.lon) {
+							that.map.camera.flyTo({
+								destination: Cesium.Cartesian3.fromDegrees(Number(ourdata.lon), Number(ourdata.lat), Number(ourdata.height * 50))
+							});
+						}
+						if (ourdata.src.indexOf('.openrealspace') != -1) {
+							// console.log('数据正确');
+							//关闭平面裁剪
+							if ($(".jimu-widget-clippingPlanes").is(":visible")) {//判断是否隐藏
+								$(".jimu-widget-clippingPlanes").hide();
+								topic.publish('closesclippingPlanes');
+							}
+							that.promise = {
+								src: ourdata.src,
+								name: ourdata.serviceName
+							};
+
+						} else {
+							// console.log('数据错误');
+							that.promise = 'NODATA';
+							//关闭平面裁剪
+							if ($(".jimu-widget-clippingPlanes").is(":visible")) {//判断是否隐藏
+								$(".jimu-widget-clippingPlanes").hide();
+								topic.publish('closesclippingPlanes');
+							}
+						}
+					} else {
+						// console.log('数据错误没有data');
+						that.promise = 'NODATA';
+						//关闭平面裁剪
+						if ($(".jimu-widget-clippingPlanes").is(":visible")) {//判断是否隐藏
+							$(".jimu-widget-clippingPlanes").hide();
+							topic.publish('closesclippingPlanes');
+						}
+					}
+
 				})
 			},
 			appendItemS: function (item, obj, layer) {
@@ -306,16 +397,23 @@
 
 						$("#SelectLayerToolItemTitle").append(liItem);
 					}
-					that.liClick(obj.id, obj.title);
+					that.liClick(obj.id, obj.title, obj);
 				}
 			},
 			removeItemS: function (item, obj) {
-				// console.log('r1')
+				// console.log(obj, 'r1')
+				var that = this;
 				if (item == this.name) {
 					var liList = $("#SelectLayerToolItemTitle li");
 					for (var i = 0; i < liList.length; i++) {
 						if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id + 's') {
 							$(liList[i]).remove();
+							var dom = $('.SelectLayerTool').attr("title");
+							// console.log(dom == obj.title, this.liClick)
+							if (dom == obj.title) {
+								that.morenliClick('默认:天地图影像', '默认:天地图影像');
+								that.promise = 'NODATA';
+							}
 						}
 					}
 
@@ -355,16 +453,23 @@
 
 						$("#SelectLayerToolItemTitle").append(liItem);
 					}
-					that.liClick(obj.id, obj.title);
+					that.liClick(obj.id, obj.title, obj);
 				}
 			},
 			removeTiltS: function (item, obj) {
+				// console.log(obj, 'r2')
 				// console.log('r2')
+				var that = this;
 				if (item == this.name) {
 					var liList = $("#SelectLayerToolItemTitle li");
 					for (var i = 0; i < liList.length; i++) {
 						if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id + 's') {
 							$(liList[i]).remove();
+							var dom = $('.SelectLayerTool').attr("title");
+							if (dom == obj.title) {
+								that.morenliClick('默认:天地图影像', '默认:天地图影像');
+								that.promise = 'NODATA';
+							}
 						}
 					}
 
@@ -375,42 +480,24 @@
 				}
 			},
 
-			// datas: [],//layui舍弃
-			// addSelectLayerTool: function (num, val) {
-			// 	console.log(num, val);
-			// 	var that = this
-			// 		, d = that.datas;
-			// 	//三维数据处理 添加全部 9 添加时删除 10 删除全部 6 //添加单个 9 添加时删除 10 删除全部 6 
-			// 	// var sanwei = {};
-			// 	// if (num == 9) {
-			// 	// 	sanwei.title = '三维倾斜数据'
-			// 	// }
-			// 	// d.push({
-			// 	// 	title: val.title
-			// 	// })
-			// 	// that.beginRool(that.datas);
+			// beginRool: function (data) {
+			// 	//选择图层Layui
+			// 	layui.use(['dropdown', 'util', 'layer', 'table'], function () {
+			// 		var dropdown = layui.dropdown
+			// 			, layer = layui.layer;
+			// 		dropdown.render({
+			// 			elem: '.SelectLayerTool'
+			// 			, data: data
+			// 			, click: function (obj) {
+			// 				layer.tips('选择了:' + obj.title, this.elem, { tips: [1, '#5FB878'] });
+			// 				var dom = $('.SelectLayerTool');
+			// 				dom.empty();
+			// 				var str = `${obj.title} <i class="layui-icon layui-icon-down layui-font-12"></i>`
+			// 				dom.append(str);
+			// 			}
+			// 		});
+			// 	});
 			// },
-			// removeSelectLayerTool: function (num, val) {
-			// 	console.log(num, val)
-			// },
-			beginRool: function (data) {
-				//选择图层Layui
-				layui.use(['dropdown', 'util', 'layer', 'table'], function () {
-					var dropdown = layui.dropdown
-						, layer = layui.layer;
-					dropdown.render({
-						elem: '.SelectLayerTool'
-						, data: data
-						, click: function (obj) {
-							layer.tips('选择了:' + obj.title, this.elem, { tips: [1, '#5FB878'] });
-							var dom = $('.SelectLayerTool');
-							dom.empty();
-							var str = `${obj.title} <i class="layui-icon layui-icon-down layui-font-12"></i>`
-							dom.append(str);
-						}
-					});
-				});
-			},
 			closeToolBox: function (item) {
 				if (item != this.name) {
 					$('.tool-y-box').hide();
@@ -464,29 +551,24 @@
 					$(".jimu-widget-spatialQuery").hide();
 					topic.publish('closesSpatialQuery');
 				}
-
+				//关闭多边形裁剪
+				if ($(".jimu-widget-polygonClipping").is(":visible")) {//判断是否隐藏
+					$(".jimu-widget-polygonClipping").hide();
+					topic.publish('closespolygonClipping');
+				}
+				//关闭通视分析
+				if ($(".jimu-widget-throughSee").is(":visible")) {//判断是否隐藏
+					$(".jimu-widget-throughSee").hide();
+					topic.publish('closesthroughSee');
+				}
+				//关闭平面裁剪
+				if ($(".jimu-widget-clippingPlanes").is(":visible")) {//判断是否隐藏
+					$(".jimu-widget-clippingPlanes").hide();
+					topic.publish('closesclippingPlanes');
+				}
 
 			},
 			onOpen: function () {
-				//面板打开的时候触发 (when open this panel trigger)
-				// var domHtmls = [
-				// 	{
-				// 		name: '可视分析',
-				// 		classs: 'visibleArea-tool'
-				// 	}, {
-				// 		name: '剖面分析',
-				// 		classs: 'profileAnalysis-tool'
-				// 	}, {
-				// 		name: '坡度分析',
-				// 		classs: 'slope-tool'
-				// 	},
-				// ];
-				// var dom = $('#spatialAnalysis-main');
-				// var str = '';
-				// for (var k in domHtmls) {
-				// 	str += `<li class="${domHtmls[k].classs}"><i></i> <span>${domHtmls[k].name}</span></li>`
-				// }
-				// dom.replaceWith(str);
 			},
 
 			onClose: function () {

--
Gitblit v1.9.3