/////////////////////////////////////////////////////////////////////////// // Copyright © 2019 zhongsong. All Rights Reserved. // 模块描述:显示坐标 /////////////////////////////////////////////////////////////////////////// define([ 'dojo/_base/declare', 'dojo/_base/lang', 'dojo/_base/array', 'dojo/_base/html', 'dojo/topic', 'jimu/BaseWidget', 'jimu/utils', 'jimu/css!libs/zTree_v3/css/zTreeStyle/zTreeStyle.css', 'libs/zTree_v3/js/jquery.ztree.all' ], function (declare, lang, array, html, topic, BaseWidget, aspect, string, utils ) { return declare([BaseWidget], { baseClass: 'jimu-widget-spatialAnalysis', name: 'spatialAnalysis', layers: {}, startup: function () { var that = this; // 暴露在外的接口 topic.subscribe("closeOnceUse", lang.hitch(this, this.closeOnceUse)); var domHtmls = [//默认 { name: '可视分析', classs: 'visibleArea-tool', img: './images/addL/ksy.png' }, { name: '剖面分析', classs: 'profileAnalysis-tool', img: './images/addL/剖面分析.png' } , {//做好静态, name: '建造实体', classs: 'modelDiagram-tool', img: './images/addL/实体.png' } // , {//https://blog.csdn.net/supermapsupport/article/details/100134590 // //需要iServer发布成三维服务 // name: '坡度分析', // classs: 'slope-tool', // img: './images/addL/pdpx.png' // } // , {//SQL查询,//做好 // name: 'SQL查询', // classs: 'SQLQuery-tool', // img: './images/addL/pdpx.png' // } , {//地形开挖,//做好 name: '地形开挖', classs: 'digTheEarth-tool', img: './images/addL/地形开挖.png' } , {//方量分析//做好 name: '方量分析', classs: 'volumeAnalysis-tool', img: './images/addL/方量分析.png' }, {//通视分析 name: '通视分析', classs: 'throughSee-tool', img: './images/addL/通视分析.png' }, {//平面裁剪 name: '平面裁剪', classs: 'clippingPlanes-tool', img: './images/addL/pingmian.png' }, {//BOX裁剪 name: 'BOX裁剪', classs: 'BOXTailoring-tool', img: './images/addL/pingmian.png' } ]; that.beginSpatialAnalysis(domHtmls); var isit = false; $('.ccslius').click(() => { isit = false; }) $('.ccsliu').dblclick(() => {//测试开关 点击图例其他的图片 if (isit) { var domHtmls2 = [ { name: '可视分析', classs: 'visibleArea-tool', img: './images/addL/ksy.png' }, { name: '剖面分析', classs: 'profileAnalysis-tool', img: './images/addL/剖面分析.png' } , {//https://blog.csdn.net/supermapsupport/article/details/100134590 //需要iServer发布成三维服务 name: '坡度分析', classs: 'slope-tool', img: './images/addL/pdpx.png' } , {//做好静态, name: '建造实体', classs: 'modelDiagram-tool', img: './images/addL/pdpx.png' } , {//SQL查询,//做好 name: 'SQL查询', classs: 'SQLQuery-tool', img: './images/addL/pdpx.png' } , {//地形开挖,//做好 name: '地形开挖', classs: 'digTheEarth-tool', img: './images/addL/pdpx.png' }, {//方量分析//做好 name: '方量分析', classs: 'volumeAnalysis-tool', img: './images/addL/pdpx.png' } , {//空间查询 name: '空间查询', 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: '建造模型', classs: 'modesssssllll', img: './images/addL/pdpx.png' } , {//清除模型 name: '清除模型', classs: 'modesssss2222', img: './images/addL/pdpx.png' } ]; that.beginSpatialAnalysis(domHtmls2); var promise = false; $('.modesssssllll').click(() => { var URL_CONFIG = { SCENE_CBD: 'http://www.supermapol.com/realspace/services/3D-niaochao/rest/realspace', } promise = this.map.scene.open(URL_CONFIG.SCENE_CBD); }) $('.modesssss2222').click(() => { if (promise) { Cesium.when(promise, function (layer) { for (var i = 0; i < layer.length; i++) { that.map.scene.layers.remove(layer[i].name) } }) } }) } else { that.beginSpatialAnalysis(domHtmls); } isit = !isit; }) }, promise: 'NODATA', beginSpatialAnalysis: function (domHtmls) { var that = this; var domHtmls = domHtmls; var dom = $('#spatialAnalysis-mains'); dom.empty(); var str = ''; dom.append(str); // console.log(dom, str) // dom.replaceWith(str); $('.closesspatialAnalysis').click(() => { that.closeOnceUse(); $('.jimu-widget-spatialAnalysis').hide(); }) // 可视分析 $('.visibleArea-tool').click(function () { that.closeOnceUse(); $(".jimu-widget-visibleArea").show(); }) // 剖面分析 $('.profileAnalysis-tool').click(function () { that.closeOnceUse(); $(".jimu-widget-profileAnalysis").show(); }) //坡度分析 $('.slope-tool').click(function () { that.closeOnceUse(); $(".jimu-widget-slope").show(); topic.publish('getbeginSlope', 'this.beginSlope'); }) //模型 $('.modelDiagram-tool').click(function () { that.closeOnceUse(); $('.jimu-widget-modelDiagram').show(); }) //sql查询 $('.SQLQuery-tool').click(function () { that.closeOnceUse(); $(".jimu-widget-SQLQuery").show(); topic.publish('beginSQL', 'this.beginSQL'); }) //地形开挖 $('.digTheEarth-tool').click(function () { that.closeOnceUse('digTheEarth'); $(".jimu-widget-digTheEarth").show(); // topic.publish('beginDigTheEarth', 'beginDigTheEarth'); }) //方量分析 $('.volumeAnalysis-tool').click(function () { that.closeOnceUse('volumeAnalysis'); $(".jimu-widget-volumeAnalysis").show(); topic.publish('beginVolumeAnalysis', 'beginVolumeAnalysis'); }) //空间查询 $('.spatialQuery-tool').click(function () { that.closeOnceUse(); $(".jimu-widget-spatialQuery").show(); topic.publish('beginSpatialQuery', 'beginSpatialQuery'); }) //多边形裁剪 $('.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); } }) //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); } }) $('.SelectLayerTool').click(() => { $('#SelectLayerToolItem').toggle(); }) //参照Layemanagement topic.subscribe("appendItemS", lang.hitch(this, this.appendItemS)); topic.subscribe("removeItemS", lang.hitch(this, this.removeItemS)); topic.subscribe("appendTiltS", lang.hitch(this, this.appendTiltS)); topic.subscribe("removeTiltS", lang.hitch(this, this.removeTiltS)); this.liClick('默认:天地图影像', '默认:天地图影像'); }, morenliClick: function (itemid, name) { var dom = $('.SelectLayerTool'); dom.empty(); var str = `${name} ` 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'); } }, liClick: function (itemid, name, ourdata = 1) {//点击事件 var that = this; var liList = $(`[itemid='${itemid}s']`); // console.log(liList); liList.click(() => { // console.log(itemid) var dom = $('.SelectLayerTool'); layer.tips('选择了:' + name, dom, { tips: [1, '#5FB878'] }); dom.empty(); var str = `${name} ` 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)) } }); } 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) { // console.log('a1') var that = this; if (item == this.name) { // $("#SelectLayerToolItemTitle .no-data").stop().hide(); var flag = true; var liList = $("#SelectLayerToolItemTitle li"); // console.log(liList) // console.log($('#SelectLayerToolItemTitle')) for (var i = 0; i < liList.length; i++) { if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id + 's') { flag = false } } if (flag == true) { var liItem = $("
  • " + "" + obj.title + "" + "
  • "); that[obj.id] = layer; $("#SelectLayerToolItemTitle").append(liItem); } that.liClick(obj.id, obj.title, obj); } }, removeItemS: function (item, obj) { // 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'; } } } if ($("#SelectLayerToolItemTitle li").length == 1 && $("#SelectLayerToolItemTitle li").length == 0) { $("#SelectLayerToolItemTitle .no-data").stop().show(); $(".jimu-widget-spatialAnalysis .tree-layer-opcity").stop().hide(); } } // this.liClick(); }, appendTiltS: function (item, obj, layer) { // console.log('a2') var that = this; if (item == this.name) { // $("#SelectLayerToolItemTitle .no-data").stop().hide(); var flag = true; var liList = $("#SelectLayerToolItemTitle li"); for (var i = 0; i < liList.length; i++) { if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id + 's') { flag = false } } if (flag == true) { var liItem = $("
  • " + "" + obj.title + "" + "
  • "); $("#SelectLayerToolItemTitle").append(liItem); } 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'; } } } if ($("#SelectLayerToolItemTitle li").length == 1 && $("#SelectLayerToolItemTitle li").length == 0) { // $("#SelectLayerToolItemTitle .no-data").stop().show(); // $(".jimu-widget-spatialAnalysis .tree-layer-opcity").stop().hide(); } } }, closeToolBox: function (item) { if (item != this.name) { $('.tool-y-box').hide(); } }, closeOnceUse: function (who) { var that = this; that.map.scene.globe.depthTestAgainstTerrain = true; // 关闭量算 topic.publish('closeMeasurement', 'Measurement'); // 关闭卷帘 topic.publish('closeRolling', 'Rolling'); // 关闭分屏 topic.publish('closeSplitScreen', 'SplitScreen'); // 关闭标记 topic.publish('closeSign', 'Sign'); topic.publish('closeFlyRoute', 'FlyRoute'); $('.jimu-widget-CoorPosition').hide(); $('.jimu-widget-MapPrinting').hide(); // 关闭可视 topic.publish('closev', ''); // 关闭剖面 topic.publish('closep', ''); // 关闭坡度 topic.publish('closes', ''); $(".jimu-widget-visibleArea").hide(); $(".jimu-widget-profileAnalysis").hide(); $(".jimu-widget-slope").hide(); $('.tool-y-box').stop().hide(); //关闭飞行 $('.jimu-widget-visualAngle').find('.v-a-Two').removeClass('on');//清楚样式 topic.publish('closeFly', 'closeFly'); //清除实体 this.map.entities.removeAll(); $(".jimu-widget-modelDiagram").hide(); //清除SQL查询 $(".jimu-widget-SQLQuery").hide(); topic.publish('closesSQL', 'closesSQL'); //关闭地形开挖 if ($(".jimu-widget-digTheEarth").is(":visible")) {//判断是否隐藏 $(".jimu-widget-digTheEarth").hide(); topic.publish('closesDigTheEarth'); } //关闭方量贩分析 if ($(".jimu-widget-volumeAnalysis").is(":visible")) {//判断是否隐藏 $(".jimu-widget-volumeAnalysis").hide(); topic.publish('closesVolumeAnalysis'); } //关闭空间查询 if ($(".jimu-widget-spatialQuery").is(":visible")) {//判断是否隐藏 $(".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'); } //关闭BOX裁剪 if ($(".jimu-widget-BOXTailoring").is(":visible")) {//判断是否隐藏 $(".jimu-widget-BOXTailoring").hide(); topic.publish('closesBOXTailoring'); } }, onOpen: function () { }, onClose: function () { //面板关闭的时候触发 (when this panel is closed trigger) }, onMinimize: function () { this.resize(); }, onMaximize: function () { this.resize(); }, resize: function () { }, destroy: function () { //销毁的时候触发 //todo //do something before this func this.inherited(arguments); } }); });