liuyg
2021-06-22 1a2c1d005bf7de2528f73638fb24d31da812aad5
widgets/spatialAnalysis/Widget.js
@@ -31,130 +31,292 @@
            var that = this;
            // 暴露在外的接口
            var domHtmls = [
                topic.subscribe("closeOnceUse", lang.hitch(this, this.closeOnceUse));
            function createTooltip(frameDiv) {//抄录createTooltip函数
               var tooltip = function (frameDiv) {
                  var div = document.createElement('DIV');
                  div.className = "twipsy right";
                  var arrow = document.createElement('DIV');
                  arrow.className = "twipsy-arrow";
                  div.appendChild(arrow);
                  var title = document.createElement('DIV');
                  title.className = "twipsy-inner";
                  div.appendChild(title);
                  this._div = div;
                  this._title = title;
                  this.message = '';
                  // add to frame div and display coordinates
                  frameDiv.appendChild(div);
                  var that = this;
                  div.onmousemove = function (evt) {
                     that.showAt({ x: evt.clientX, y: evt.clientY }, that.message);
                  };
               };
               tooltip.prototype.setVisible = function (visible) {
                  this._div.style.display = visible ? 'block' : 'none';
               };
               tooltip.prototype.showAt = function (position, message) {
                  if (position && message) {
                     this.setVisible(true);
                     this._title.innerHTML = message;
                     this._div.style.left = position.x + 10 + "px";
                     this._div.style.top = (position.y - this._div.clientHeight / 2) + "px";
                     this.message = message;
                  }
               };
               return new tooltip(frameDiv);
            }
            window.MYcreateTooltip = createTooltip;//全局使用
            var domHtmls = [//默认
               {
                  name: '可视分析',
                  classs: 'visibleArea-tool'
                  classs: 'visibleArea-tool',
                  img: './images/addL/ksy.png'
               }, {
                  name: '剖面分析',
                  classs: 'profileAnalysis-tool'
               }, {
                  name: '坡度分析',
                  classs: 'slope-tool'
                  classs: 'profileAnalysis-tool',
                  img: './images/addL/剖面分析.png'
               }
               // , {//做好静态,
               //    name: '建造实体',
               //    classs: 'modelDiagram-tool',
               //    img: './images/addL/pdpx.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/pdpx.png'
               }
               // , {//方量分析//做好
               //    name: '方量分析',
               //    classs: 'volumeAnalysis-tool',
               //    img: './images/addL/pdpx.png'
               // }
            ];
            var dom = $('#spatialAnalysis-main');
            var str = '';
            that.beginSpatialAnalysis(domHtmls);
            var 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: '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-CBDCache20200416/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;
            })
         },
         beginSpatialAnalysis: function (domHtmls) {
            var that = this;
            var domHtmls = domHtmls;
            var dom = $('#spatialAnalysis-mains');
            dom.empty();
            var str = '<ul>';
            for (var k in domHtmls) {
               str += `<li class="${domHtmls[k].classs}">
                <i></i>
                <i class="imgs">
                <img src="${domHtmls[k].img}" alt="">
                </i>
                <span>${domHtmls[k].name}</span>
                </li>`
            }
            dom.replaceWith(str);
            str += '</ul>';
            dom.append(str);
            // console.log(dom, str)
            // dom.replaceWith(str);
            $('.closesspatialAnalysis').click(() => {
               that.closeOnceUse();
               $('.jimu-widget-spatialAnalysis').hide();
               // 关闭可视
               topic.publish('closev', '');
               // 关闭剖面
               topic.publish('closep', '');
               $(".jimu-widget-visibleArea").hide();
               $(".jimu-widget-profileAnalysis").hide();
               $(".jimu-widget-slope").hide();
            })
            // topic.subscribe("closeTool", lang.hitch(this, this.closeToolBox));
            // this.inherited(arguments);
            // $('.tool-bar .tool-btn span').click(function () {
            //    topic.publish('closeMap', this.name);
            //    topic.publish('closeZtree', this.name);
            //    $('.tool-y-box').toggle();
            // })
            // 可视分析
            $('.visibleArea-tool').click(function () {
               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', '');
               $(".jimu-widget-profileAnalysis").hide();
               $(".jimu-widget-slope").hide();
               $('.tool-y-box').stop().hide();
               that.closeOnceUse();
               $(".jimu-widget-visibleArea").show();
            })
            // 剖面分析
            $('.profileAnalysis-tool').click(function () {
               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', '');
               $(".jimu-widget-visibleArea").hide();
               $(".jimu-widget-slope").hide();
               $('.tool-y-box').stop().hide();
               that.closeOnceUse();
               $(".jimu-widget-profileAnalysis").show();
            })
            //坡度分析
            $('.slope-tool').click(function () {
               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', '');
               $(".jimu-widget-visibleArea").hide();
               $(".jimu-widget-profileAnalysis").hide();
               $('.tool-y-box').stop().hide();
               that.closeOnceUse();
               $(".jimu-widget-slope").show();
               topic.publish('getbeginSlope', this.beginSlope);
               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');
            })
         },
         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');
            }
         },
         onOpen: function () {
            //面板打开的时候触发 (when open this panel trigger)
            // var domHtmls = [