From 25ce610f6ecca7325e7a743dc032c4a76559c63d Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 02 Jul 2021 09:10:26 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/pyhmap
---
widgets/spatialAnalysis/Widget.js | 214 +++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 182 insertions(+), 32 deletions(-)
diff --git a/widgets/spatialAnalysis/Widget.js b/widgets/spatialAnalysis/Widget.js
index 1ac956e..c8e0e3d 100644
--- a/widgets/spatialAnalysis/Widget.js
+++ b/widgets/spatialAnalysis/Widget.js
@@ -48,7 +48,7 @@
, {//做好静态,
name: '建造实体',
classs: 'modelDiagram-tool',
- img: './images/addL/pdpx.png'
+ img: './images/addL/实体.png'
}
// , {//https://blog.csdn.net/supermapsupport/article/details/100134590
// //需要iServer发布成三维服务
@@ -64,17 +64,33 @@
, {//地形开挖,//做好
name: '地形开挖',
classs: 'digTheEarth-tool',
- img: './images/addL/pdpx.png'
+ img: './images/addL/地形开挖.png'
}
, {//方量分析//做好
name: '方量分析',
classs: 'volumeAnalysis-tool',
- img: './images/addL/pdpx.png'
+ img: './images/addL/方量分析.png'
},
{//通视分析
name: '通视分析',
classs: 'throughSee-tool',
- img: './images/addL/pdpx.png'
+ img: './images/addL/通视分析.png'
+ },
+ {//平面裁剪
+ name: '平面裁剪',
+ classs: 'clippingPlanes-tool',
+ img: './images/addL/pingmian.png'
+ },
+ {//BOX裁剪
+ name: 'BOX裁剪',
+ classs: 'BOXTailoring-tool',
+ img: './images/addL/BOX裁剪.png'
+ }
+ ,
+ {//Cross裁剪
+ name: 'Cross裁剪',
+ classs: 'crossTailoring-tool',
+ img: './images/addL/BOX裁剪.png'
}
];
@@ -135,6 +151,16 @@
name: '通视分析',
classs: 'throughSee-tool',
img: './images/addL/pdpx.png'
+ },
+ {//平面裁剪
+ name: '平面裁剪',
+ classs: 'clippingPlanes-tool',
+ img: './images/addL/pdpx.png'
+ },
+ {//BOX裁剪
+ name: 'BOX裁剪',
+ classs: 'BOXTailoring-tool',
+ img: './images/addL/BOX裁剪.png'
}
,
{//建造模型
@@ -173,6 +199,7 @@
})
},
+ promise: 'NODATA',
beginSpatialAnalysis: function (domHtmls) {
var that = this;
var domHtmls = domHtmls;
@@ -264,6 +291,47 @@
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);
+ }
+ })
+
+ //BOX裁剪
+ $('.BOXTailoring-tool').click(function () {
+ that.closeOnceUse();
+
+ if (that.promise == 'NODATA') {
+ layer.tips('请选择三维倾斜数据中的图层支持!', '.SelectLayerTool', {
+ tips: [3, 'red']
+ });
+ } else {
+ $(".jimu-widget-BOXTailoring").show();
+ topic.publish('beginBOXTailoring', that.promise);
+ }
+ })
+
+ //Cross裁剪
+ $('.crossTailoring-tool').click(function () {
+ that.closeOnceUse();
+
+ if (that.promise == 'NODATA') {
+ layer.tips('请选择三维倾斜数据中的图层支持!', '.SelectLayerTool', {
+ tips: [3, 'red']
+ });
+ } else {
+ $(".jimu-widget-crossTailoring").show();
+ topic.publish('begincrossTailoring', that.promise);
+ }
+ })
$('.SelectLayerTool').click(() => {
$('#SelectLayerToolItem').toggle();
@@ -277,7 +345,37 @@
this.liClick('默认:天地图影像', '默认:天地图影像');
},
- liClick: function (itemid, name) {//点击事件
+ morenliClick: function (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';
+ this.SelectClose();//关闭需要三维数据的窗口
+
+ },
+ SelectClose: function () {
+ //关闭平面裁剪
+ if ($(".jimu-widget-clippingPlanes").is(":visible")) {//判断是否隐藏
+ $(".jimu-widget-clippingPlanes").hide();
+ topic.publish('closesclippingPlanes');
+ }
+
+ //关闭BOX裁剪
+ if ($(".jimu-widget-BOXTailoring").is(":visible")) {//判断是否隐藏
+ $(".jimu-widget-BOXTailoring").hide();
+ topic.publish('closesBOXTailoring');
+ }
+
+ //关闭Cross裁剪
+ if ($(".jimu-widget-crossTailoring").is(":visible")) {//判断是否隐藏
+ $(".jimu-widget-crossTailoring").hide();
+ topic.publish('closescrossTailoring');
+ }
+ },
+ liClick: function (itemid, name, ourdata = 1) {//点击事件
+ var that = this;
var liList = $(`[itemid='${itemid}s']`);
// console.log(liList);
liList.click(() => {
@@ -289,6 +387,56 @@
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.scene.camera.setView({
+ destination: new Cesium.Cartesian3.fromDegrees(Number(ourdata.lon), Number(ourdata.lat), Number(ourdata.height)),
+ orientation: {
+ heading: Cesium.Math.toRadians(Number(ourdata.yawAngle)),
+ pitch: Cesium.Math.toRadians(Number(ourdata.pitchAngle)),
+ roll: Cesium.Math.toRadians(Number(ourdata.rollAngle))
+ }
+ });
+ // console.log(ourdata.lon)
+ // console.log(ourdata.lat)
+ // console.log(ourdata.height)
+ // console.log(ourdata.yawAngle)
+ // console.log(ourdata.pitchAngle)
+ // console.log(ourdata.rollAngle)
+ //115.996858
+ //29.170348
+ //232.99
+ //84.10
+ //-22.98
+ //360.00
+ }
+ if (ourdata.src.indexOf('.openrealspace') != -1) {
+ // console.log('数据正确');
+ this.SelectClose();//关闭需要三维数据的窗口
+ that.promise = {
+ src: ourdata.src,
+ ZName: ourdata.title,
+ name: ourdata.serviceName,
+ id: ourdata.id
+ };
+
+ } else {
+ // console.log('数据错误');
+ that.promise = 'NODATA';
+ this.SelectClose();//关闭需要三维数据的窗口
+ }
+ } else {
+ // console.log('数据错误没有data');
+ that.promise = 'NODATA';
+ //关闭平面裁剪
+ this.SelectClose();//关闭需要三维数据的窗口
+ }
+
})
},
appendItemS: function (item, obj, layer) {
@@ -318,20 +466,22 @@
$("#SelectLayerToolItemTitle").append(liItem);
}
- that.liClick(obj.id, obj.title);
+ that.liClick(obj.id, obj.title, obj);
}
},
removeItemS: function (item, obj) {
- console.log(obj, '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)
+ // console.log(dom == obj.title, this.liClick)
if (dom == obj.title) {
- this.liClick('默认:天地图影像', '默认:天地图影像');
+ that.morenliClick('默认:天地图影像', '默认:天地图影像');
+ that.promise = 'NODATA';
}
}
}
@@ -372,12 +522,13 @@
$("#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(obj, 'r2')
// console.log('r2')
+ var that = this;
if (item == this.name) {
var liList = $("#SelectLayerToolItemTitle li");
for (var i = 0; i < liList.length; i++) {
@@ -385,7 +536,8 @@
$(liList[i]).remove();
var dom = $('.SelectLayerTool').attr("title");
if (dom == obj.title) {
- this.liClick('默认:天地图影像', '默认:天地图影像');
+ that.morenliClick('默认:天地图影像', '默认:天地图影像');
+ that.promise = 'NODATA';
}
}
}
@@ -396,25 +548,6 @@
}
}
},
-
- // 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();
@@ -476,7 +609,24 @@
//关闭通视分析
if ($(".jimu-widget-throughSee").is(":visible")) {//判断是否隐藏
$(".jimu-widget-throughSee").hide();
- // topic.publish('closesthroughSee');
+ topic.publish('closesthroughSee');
+ }
+ //关闭平面裁剪
+ if ($(".jimu-widget-clippingPlanes").is(":visible")) {//判断是否隐藏
+ $(".jimu-widget-clippingPlanes").hide();
+ topic.publish('closesclippingPlanes');
+ }
+
+ //关闭BOX裁剪
+ if ($(".jimu-widget-BOXTailoring").is(":visible")) {//判断是否隐藏
+ $(".jimu-widget-BOXTailoring").hide();
+ topic.publish('closesBOXTailoring');
+ }
+
+ //关闭Cross裁剪
+ if ($(".jimu-widget-crossTailoring").is(":visible")) {//判断是否隐藏
+ $(".jimu-widget-crossTailoring").hide();
+ topic.publish('closescrossTailoring');
}
},
--
Gitblit v1.9.3