liuyg
2021-06-21 32ff53f574c1db183a4837b8fb3272c61569db82
SQL查询
8 files modified
14 files added
885 ■■■■ changed files
config.json 4 ●●●● patch | view | raw | blame | history
jimu.js/MapManager.js 7 ●●●●● patch | view | raw | blame | history
widgets/SQLQuery/Widget.html 16 ●●●●● patch | view | raw | blame | history
widgets/SQLQuery/Widget.js 314 ●●●●● patch | view | raw | blame | history
widgets/SQLQuery/css/style.css 27 ●●●●● patch | view | raw | blame | history
widgets/SQLQuery/manifest.json 17 ●●●●● patch | view | raw | blame | history
widgets/SQLQuery/nls/es/strings.js 5 ●●●●● patch | view | raw | blame | history
widgets/SQLQuery/nls/strings.js 7 ●●●●● patch | view | raw | blame | history
widgets/SQLQuery/nls/zh-cn/strings.js 5 ●●●●● patch | view | raw | blame | history
widgets/null/Widget.html 6 ●●●●● patch | view | raw | blame | history
widgets/null/Widget.js 66 ●●●●● patch | view | raw | blame | history
widgets/null/css/style.css 26 ●●●●● patch | view | raw | blame | history
widgets/null/manifest.json 17 ●●●●● patch | view | raw | blame | history
widgets/null/nls/es/strings.js 5 ●●●●● patch | view | raw | blame | history
widgets/null/nls/strings.js 7 ●●●●● patch | view | raw | blame | history
widgets/null/nls/zh-cn/strings.js 5 ●●●●● patch | view | raw | blame | history
widgets/searchL/Widget.js 113 ●●●● patch | view | raw | blame | history
widgets/slope/Widget.html 4 ●●●● patch | view | raw | blame | history
widgets/slope/Widget.js 11 ●●●●● patch | view | raw | blame | history
widgets/spatialAnalysis/Widget.html 4 ●●●● patch | view | raw | blame | history
widgets/spatialAnalysis/Widget.js 213 ●●●●● patch | view | raw | blame | history
widgets/visibleArea/Widget.js 6 ●●●● patch | view | raw | blame | history
config.json
@@ -248,6 +248,10 @@
      {
        "name": "模型gif",
        "uri": "widgets/modelDiagram/Widget"
      },
      {
        "name": "SQL查询",
        "uri": "widgets/SQLQuery/Widget"
      }
    ],
    "groups": [],
jimu.js/MapManager.js
@@ -140,12 +140,12 @@
                            layer = new Cesium.ArcGisMapServerImageryProvider(layerConfig);
                        }
                        layerArr.push(layer);
                    }
                    var pvm = new Cesium.ProviderViewModel({
                        name: imageryProviderViewModels[i].name,
                        tooltip: imageryProviderViewModels[i].tooltip,
@@ -179,7 +179,8 @@
                        return new Cesium.CesiumTerrainProvider({
                            url: "./dx/",
                            requestWaterMask: !0,
                            requestVertexNormals: !0
                            requestVertexNormals: !0,
                            // isSct: true,//因坡度坡向添加
                        })
                    }
                })];
widgets/SQLQuery/Widget.html
New file
@@ -0,0 +1,16 @@
<div>
    <div id="SQLQuerytoolbar" class="param-container tool-bar">
        <label style="font: 400 13.3333px Arial;">SQL</label><input type="text" id="SQL" value="SMAREA>500">
        <button type="button" id="SQLQuerysearch" class="button black">查询</button>
        <br>
        <select id="SQLQueryposition" style="width: 100%">
            <option value="1">定位点1</option>
            <option value="2">定位点2</option>
            <option value="3">定位点3</option>
            <option value="4">点位点4</option>
        </select>
    </div>
    <i class="layui-icon closeOUR">
        &#x1006;
    </i></span>
</div>
widgets/SQLQuery/Widget.js
New file
@@ -0,0 +1,314 @@
define([
    'dojo/_base/declare',
    'dojo/_base/lang',
    'dojo/_base/array',
    'dojo/_base/html',
    'dojo/topic',
    'jimu/BaseWidget',
],
    function (declare,
        lang,
        array,
        html,
        topic,
        BaseWidget
    ) {
        return declare([BaseWidget], {
            baseClass: 'jimu-widget-SQLQuery',
            name: 'SQLQuery',
            flag: false,
            startup: function () {
                var that = this;
                topic.subscribe("beginSQL", lang.hitch(this, this.beginSQL));
                topic.subscribe("closesSQL", lang.hitch(this, this.closesSQL));
                // topic.publish('beginSQL', that.beginSQL);
                $(`.${that.baseClass}`).find('.closeOUR').click(() => {
                    $(`.${that.baseClass}`).hide();
                    that.closesSQL();
                })
                // that.beginSQL();
            },
            beginSQL: function () {
                var that = this
                    , viewer = that.map
                    , scene = viewer.scene;
                scene.shadowMap.darkness = 1.275; //设置第二重烘焙纹理的效果(明暗程度)
                scene.skyAtmosphere.brightnessShift = 0.4;  //修改大气的亮度
                scene.debugShowFramesPerSecond = false;
                scene.hdrEnabled = false;
                scene.sun.show = false;
                // 01设置环境光的强度-新处理CBD场景
                scene.lightSource.ambientLightColor = new Cesium.Color(0.65, 0.65, 0.65, 1);
                // 添加光源
                var position1 = new Cesium.Cartesian3.fromDegrees(116.261209157595, 39.3042238956531, 480);
                //光源方向点
                var targetPosition1 = new Cesium.Cartesian3.fromDegrees(116.261209157595, 39.3042238956531, 430);
                var dirLightOptions = {
                    targetPosition: targetPosition1,
                    color: new Cesium.Color(1.0, 1.0, 1.0, 1),
                    intensity: 0.55
                };
                directionalLight_1 = new Cesium.DirectionalLight(position1, dirLightOptions);
                scene.addLightSource(directionalLight_1);
                var widget = viewer.cesiumWidget;
                var buildingLayer;
                var IDs = [];
                $('#loadingbar').remove();
                var URL_CONFIG = {
                    SCENE_CBD: 'http://www.supermapol.com/realspace/services/3D-CBDCache20200416/rest/realspace',
                }
                var promise = scene.open(URL_CONFIG.SCENE_CBD);
                // try {
                Cesium.when(promise, function (layers) {
                    // console.log(layers, 1111)
                    //设置相机位置、视角,便于观察场景
                    scene.camera.setView({
                        destination: new Cesium.Cartesian3.fromDegrees(116.4566, 39.9149, 5323.445971240632),
                        orientation: {
                            heading: 0,
                            pitch: -1.5188,
                            roll: 0
                        }
                    });
                    var camera = scene.camera;
                    buildingLayer = scene.layers.find("Building@CBD");
                    buildingLayer.indexedDBSetting.isAttributesSave = true;//保存属性
                    //点击属性查询
                    var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
                    handler.setInputAction(function (evt) {
                        var position = scene.pickPosition(evt.position);
                        if (buildingLayer.getSelection().length > 0) {
                            const selectedId = Number(buildingLayer.getSelection()[0]);
                            buildingLayer.getAttributesById([selectedId]).then(function (atts) {
                                if (atts) {
                                    console.log(atts);
                                    viewer.entities.removeAll();
                                    var length = Object.keys(atts).length;
                                    var des;
                                    for (var i = 0; i < length; i++) {
                                        var key = Object.keys(atts)[i];
                                        var value = atts[key];
                                        var index = i.toString();
                                        if (i == 0) {
                                            des = '<table class="cesium-infoBox-defaultTable"><tbody>' + '<tr><th>' + key + '</th><td>' + value + '</td></tr>';
                                        } else if (i == length - 1) {
                                            des += '<tr><th>' + key + '</th><td>' + value + '</td></tr>' + "</tbody></table>";
                                        } else {
                                            des += '<tr><th>' + key + '</th><td>' + value + '</td></tr>';
                                        }
                                    }
                                    viewer.entities.add({
                                        position: position,
                                        billboard: {
                                            image: './images/addL/dworgin.png',
                                            width: 30,
                                            height: 40,
                                        },
                                        name: atts["MODELNAME"],
                                        description: des
                                    });
                                }
                            }
                            )
                        }
                    }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
                    $("#SQLQuerysearch").click(function () {
                        doSqlQuery($("#SQL").val());
                    });
                    $("#SQLQueryposition").change(function () {
                        if (this.value == "1") {
                            camera.flyTo({
                                destination: Cesium.Cartesian3.fromDegrees(116.45756824765414, 39.9151525065, 303.9282348283207),
                                orientation: {
                                    heading: 3.361386,
                                    pitch: -0.543285,
                                    roll: 6.283185307179563
                                }
                            });
                        }
                        if (this.value == "2") {
                            camera.flyTo({
                                destination: Cesium.Cartesian3.fromDegrees(116.45898554643348, 39.90943026228571, 32.707476595524625),
                                orientation: {
                                    heading: 6.016771,
                                    pitch: -0.300416,
                                    roll: 0.0
                                }
                            });
                        }
                        if (this.value == "3") {
                            camera.flyTo({
                                destination: Cesium.Cartesian3.fromDegrees(116.43518565219966, 39.95097107746538, 2078.0503226706123),
                                orientation: {
                                    heading: 2.718565,
                                    pitch: -0.415366,
                                    roll: 0.0
                                }
                            });
                        }
                        if (this.value == "4") {
                            camera.flyTo({
                                destination: Cesium.Cartesian3.fromDegrees(116.48368313561016, 39.911532190450295, 369.08993153401934),
                                orientation: {
                                    heading: 4.771817,
                                    pitch: -0.190922,
                                    roll: 0.0
                                }
                            });
                        }
                    })
                }, function () {
                    var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
                    widget.showErrorPanel(title, undefined, e);
                });
                // } catch (e) {
                // if (widget._showRenderLoopErrors) {
                //     var title = '渲染时发生错误,已停止渲染。';
                //     widget.showErrorPanel(title, undefined, e);
                // }
                // }
                function onQueryComplete(features) {
                    var selectedFeatures = features;
                    viewer.entities.removeAll();
                    for (var i = 0; i < selectedFeatures.length; i++) {
                        var value = selectedFeatures[i].fieldValues["0"];
                        var feature = selectedFeatures[i];
                        for (var j = 0; j < feature.fieldNames.length; j++) {
                            var index = j.toString();
                            if (j == 0) {
                                var des = '<table class="cesium-infoBox-defaultTable"><tbody>' + '<tr><th>' + selectedFeatures[i].fieldNames["0"] + '</th><td>' + selectedFeatures[i].fieldValues["0"] + '</td></tr>';
                            } else if (j == feature.fieldNames.length - 1) {
                                des += '<tr><th>' + selectedFeatures[i].fieldNames[index] + '</th><td>' + selectedFeatures[i].fieldValues[index] + '</td></tr>' + "</tbody></table>";
                            } else {
                                des += '<tr><th>' + selectedFeatures[i].fieldNames[index] + '</th><td>' + selectedFeatures[i].fieldValues[index] + '</td></tr>';
                            }
                        }
                        viewer.entities.add({
                            position: Cesium.Cartesian3.fromDegrees(parseFloat(selectedFeatures[i].fieldValues["12"]), parseFloat(selectedFeatures[i].fieldValues["13"]), parseFloat(selectedFeatures[i].fieldValues["16"])),
                            billboard: {
                                image: './images/addL/dwblue.png',
                                width: 30,
                                height: 40,
                            },
                            name: selectedFeatures[i].fieldValues["11"],
                            description: des,
                            SQLData: selectedFeatures[i]//设置数据
                        });
                        IDs.push(parseInt(value) + 11);
                    }
                    if (IDs.length > 0) {
                        buildingLayer.setSelection(IDs);
                    }
                }
                function doSqlQuery(sqlStr) {
                    var sqlParameter = {
                        "datasetNames": ["二维数据:Building"],
                        getFeatureMode: "SQL",
                        queryParameter: {
                            attributeFilter: sqlStr
                        }
                    };
                    var url = "http://www.supermapol.com/realspace/services/data-cbd/rest/data/featureResults.rjson?returnContent=true";
                    var queryData = JSON.stringify(sqlParameter);
                    $.ajax({
                        type: "post",
                        url: url,
                        data: queryData,
                        success: function (result) {
                            var resultObj = JSON.parse(result);
                            console.log(resultObj);
                            if (resultObj.featureCount > 0) {
                                onQueryComplete(resultObj.features);
                            }
                        },
                        error: function (msg) {
                            console.log(msg);
                        },
                        // complete: function () {
                        //     console.log("complete");
                        // }
                    })
                    // $.ajax({
                    //     url: url,
                    //     async: true,
                    //     data: queryData,
                    //     method: "POST"
                    // }).done(function (result) {
                    //     var resultObj = JSON.parse(result);
                    //     console.log(resultObj);
                    //     if (resultObj.featureCount > 0) {
                    //         onQueryComplete(resultObj.features);
                    //     }
                    //
                    // })
                }
                function processFailed(queryEventArgs) {
                    alert('查询失败!');
                }
                that.promise = promise;
            },
            promise: '',
            closesSQL: function () {
                var that = this
                    , viewer = this.map;
                viewer.entities.removeAll();
                Cesium.when(that.promise, function (layer) {
                    for (var i = 0; i < layer.length; i++) {
                        that.map.scene.layers.remove(layer[i].name)
                    }
                })
            },
            onOpen: function () {
            },
            onClose: function () {
                //面板关闭的时候触发 (when this panel is closed trigger)
                console.log('jies')
            },
            onMinimize: function () {
                this.resize();
            },
            onMaximize: function () {
                this.resize();
            },
            resize: function () {
            },
            destroy: function () {
                //销毁的时候触发
                //todo
                //do something before this func
                this.inherited(arguments);
            }
        });
    });
widgets/SQLQuery/css/style.css
New file
@@ -0,0 +1,27 @@
.jimu-widget-SQLQuery {
  position: fixed !important;
  top: 72px !important;
  right: 388px !important;
  width: 200px !important;
  height: 120px !important;
  background-color: rgb(255, 255, 255);
  font-size: 14px;
  color: rgb(0, 0, 0);
  z-index: 12 !important;
  border-radius: 10px;
  display: none;
  box-shadow: 0 0 8px #fff;
  padding: 25px 5px 0 5px !important;
}
.jimu-widget-SQLQuery .closeOUR {
  position: absolute;
  right: 5px;
  top: 5px;
  font-size: 18px;
  cursor: pointer;
}
.jimu-widget-SQLQuery .closeOUR:hover {
  color: red;
}
widgets/SQLQuery/manifest.json
New file
@@ -0,0 +1,17 @@
{
  "name": "SQLQuery",
  "2D": true,
  "3D": true,
  "platform": "HTML",
  "version": "2.10",
  "wabVersion": "2.10",
  "author": "liuyg",
  "description": "",
  "copyright": "",
  "license": "",
  "properties": {
    "hasConfig": false,
    "inPanel": false,
    "hasVersionManager": false
  }
}
widgets/SQLQuery/nls/es/strings.js
New file
@@ -0,0 +1,5 @@
define(
   ({
    _widgetLabel: "SQLQuery"
  })
);
widgets/SQLQuery/nls/strings.js
New file
@@ -0,0 +1,7 @@
define({
  root: ({
    _widgetLabel: "SQLQuery"
  }),
  "es": 1,
  "zh-cn": 1
});
widgets/SQLQuery/nls/zh-cn/strings.js
New file
@@ -0,0 +1,5 @@
define(
   ({
    _widgetLabel: "SQL查询"
  })
);
widgets/null/Widget.html
New file
@@ -0,0 +1,6 @@
<div>
    null空项目模板
    <i class="layui-icon closeOUR">
        &#x1006;
    </i></span>
</div>
widgets/null/Widget.js
New file
@@ -0,0 +1,66 @@
define([
    'dojo/_base/declare',
    'dojo/_base/lang',
    'dojo/_base/array',
    'dojo/_base/html',
    'dojo/topic',
    'jimu/BaseWidget',
],
    function (declare,
        lang,
        array,
        html,
        topic,
        BaseWidget
    ) {
        return declare([BaseWidget], {
            baseClass: 'jimu-widget-null',
            name: 'null',
            flag: false,
            startup: function () {
                var that = this;
                topic.subscribe("beginNull", lang.hitch(this, this.beginNull));
                topic.subscribe("closesNull", lang.hitch(this, this.closesNull));
                // topic.publish('getbeginSlope', that.beginSlope);
                $(`.${that.baseClass}`).find('.closeOUR').click(() => {
                    $(`.${that.baseClass}`).hide();
                    that.closesNull();
                })
            },
            beginNull: function () {
            },
            closesNull: function () {
            },
            onOpen: function () {
            },
            onClose: function () {
                //面板关闭的时候触发 (when this panel is closed trigger)
                console.log('jies')
            },
            onMinimize: function () {
                this.resize();
            },
            onMaximize: function () {
                this.resize();
            },
            resize: function () {
            },
            destroy: function () {
                //销毁的时候触发
                //todo
                //do something before this func
                this.inherited(arguments);
            }
        });
    });
widgets/null/css/style.css
New file
@@ -0,0 +1,26 @@
.jimu-widget-null {
  position: fixed !important;
  top: 72px !important;
  right: 388px !important;
  width: 200px !important;
  height: 40px !important;
  background-color: rgb(255, 255, 255);
  font-size: 14px;
  color: rgb(0, 0, 0);
  z-index: 12 !important;
  border-radius: 10px;
  /* display: none; */
  box-shadow: 0 0 8px #fff;
  padding: 0px 5px !important;
}
.jimu-widget-null .closeOUR {
  /* position: relative;
  left: 3px;
  font-size: 18px; */
  cursor: pointer;
}
.jimu-widget-null .closeOUR:hover {
  color: red;
}
widgets/null/manifest.json
New file
@@ -0,0 +1,17 @@
{
  "name": "slope",
  "2D": true,
  "3D": true,
  "platform": "HTML",
  "version": "2.10",
  "wabVersion": "2.10",
  "author": "liuyg",
  "description": "",
  "copyright": "",
  "license": "",
  "properties": {
    "hasConfig": false,
    "inPanel": false,
    "hasVersionManager": false
  }
}
widgets/null/nls/es/strings.js
New file
@@ -0,0 +1,5 @@
define(
   ({
    _widgetLabel: "slope"
  })
);
widgets/null/nls/strings.js
New file
@@ -0,0 +1,7 @@
define({
  root: ({
    _widgetLabel: "slope"
  }),
  "es": 1,
  "zh-cn": 1
});
widgets/null/nls/zh-cn/strings.js
New file
@@ -0,0 +1,5 @@
define(
   ({
    _widgetLabel: "坡度坡向分析"
  })
);
widgets/searchL/Widget.js
@@ -234,63 +234,72 @@
                var pickedObjects = this.map.scene.drillPick(data.position) || 0;
                // console.log(pickedObjects);
                if (pickedObjects.length != 0) {
                    var data = pickedObjects[0].primitive.id.onceData[1];
                    if (pickedObjects[0].primitive.id != undefined) {
                        if (pickedObjects[0].primitive.id.onceData != undefined) {//搜索图标点击事件
                            // console.log('onceData')
                            var data = pickedObjects[0].primitive.id.onceData[1];
                    if (pickedObjects[0].primitive.id.onceData[0] == 1) {//全景
                        var address = data.panAddress;
                        var dom = $('.jimu-widget-searchTabaPopup').find('.header'),
                            str = `${data.name}--全景`;
                        dom.empty();
                        dom.append(str);
                        // console.log(data)
                            if (pickedObjects[0].primitive.id.onceData[0] == 1) {//全景
                                var address = data.panAddress;
                                var dom = $('.jimu-widget-searchTabaPopup').find('.header'),
                                    str = `${data.name}--全景`;
                                dom.empty();
                                dom.append(str);
                                // console.log(data)
                        dom = $('#poput-m-t-quanjing');
                        str = `<iframe id="poput-m-t-quanjing-iframe" src="${address}" frameborder="0"></iframe>`;
                        dom.empty();
                        dom.append(str);
                        $('.jimu-widget-searchTabaPopup').css({ 'display': 'block' });
                        $('.jimu-widget-searchTabaPopup').find('.p-main').eq(0).css({ 'display': 'block' }).siblings().css({ 'display': 'none' });
                    }
                    if (pickedObjects[0].primitive.id.onceData[0] == 2) {//监控
                        var dom = $('.jimu-widget-searchTabaPopup').find('.header'),
                            str = `${data.name}--实时视频`;
                        dom.empty();
                        dom.append(str);
                        // console.log(data)
                        if (data.flv) {
                            dom = $('#poput-m-t-video');
                            str = `
                            <video id="poput-m-t-video-video" ></video>
                            `;
                            dom.empty();
                            dom.append(str);
                            if (flvjs.isSupported()) {
                                var videoElement = document.getElementById('poput-m-t-video-video');
                                var flvPlayer = flvjs.createPlayer({
                                    type: 'flv',
                                    url: data.flv
                                });
                                flvPlayer.attachMediaElement(videoElement);
                                flvPlayer.load();
                                flvPlayer.play();
                                dom = $('#poput-m-t-quanjing');
                                str = `<iframe id="poput-m-t-quanjing-iframe" src="${address}" frameborder="0"></iframe>`;
                                dom.empty();
                                dom.append(str);
                                $('.jimu-widget-searchTabaPopup').css({ 'display': 'block' });
                                $('.jimu-widget-searchTabaPopup').find('.p-main').eq(0).css({ 'display': 'block' }).siblings().css({ 'display': 'none' });
                            }
                            window.$myVideoFlvplayer = flvPlayer;
                            // var time = setTimeout(() => {
                            if (pickedObjects[0].primitive.id.onceData[0] == 2) {//监控
                                var dom = $('.jimu-widget-searchTabaPopup').find('.header'),
                                    str = `${data.name}--实时视频`;
                                dom.empty();
                                dom.append(str);
                                // console.log(data)
                                if (data.flv) {
                                    dom = $('#poput-m-t-video');
                                    str = `
                                <video id="poput-m-t-video-video" ></video>
                                `;
                                    dom.empty();
                                    dom.append(str);
                                    if (flvjs.isSupported()) {
                                        var videoElement = document.getElementById('poput-m-t-video-video');
                                        var flvPlayer = flvjs.createPlayer({
                                            type: 'flv',
                                            url: data.flv
                                        });
                                        flvPlayer.attachMediaElement(videoElement);
                                        flvPlayer.load();
                                        flvPlayer.play();
                                    }
                                    window.$myVideoFlvplayer = flvPlayer;
                                    // var time = setTimeout(() => {
                            // }, 2000);
                        } else {
                            var dom = $('#poput-m-t-video'),
                                str = `
                            <div id="poput-m-t-video-none" >·暂无视频</div>
                    `;
                            dom.empty();
                            dom.append(str);
                                    // }, 2000);
                                } else {
                                    var dom = $('#poput-m-t-video'),
                                        str = `
                                <div id="poput-m-t-video-none" >·暂无视频</div>
                        `;
                                    dom.empty();
                                    dom.append(str);
                                }
                                $('.jimu-widget-searchTabaPopup').css({ 'display': 'block' });
                                $('.jimu-widget-searchTabaPopup').find('.p-main').eq(0).css({ 'display': 'block' }).siblings().css({ 'display': 'none' });
                            }
                            if (pickedObjects[0].primitive.id.onceData[0] == 3) {//监测
                                console.log('监测', data)
                            }
                        } else if (pickedObjects[0].primitive.id.SQLData != undefined) {//SQL查询图标点击事件
                            // console.log('SQLData')
                        }
                        $('.jimu-widget-searchTabaPopup').css({ 'display': 'block' });
                        $('.jimu-widget-searchTabaPopup').find('.p-main').eq(0).css({ 'display': 'block' }).siblings().css({ 'display': 'none' });
                    }
                    if (pickedObjects[0].primitive.id.onceData[0] == 3) {//监测
                        console.log('监测', data)
                    }
                }
            },
widgets/slope/Widget.html
@@ -10,9 +10,9 @@
            <label>2、坡度区间:</label>
            <label> 起:</label>
            <input type="range" id="wideminR" min="0" max="90" value="0" style="width: 170px" ;>
            <input type="number" id="widemin" min="0" max="90" value="0" style="width: 30px"> <label> 终:</label>
            <input type="number" id="widemin" min="0" max="9000" value="0" style="width: 30px"> <label> 终:</label>
            <input type="range" id="widemaxR" min="0" max="90" value="78" style="width: 170px">
            <input type="number" id="widemax" min="0" max="90" value="78" style="width: 30px;">
            <input type="number" id="widemax" min="0" max="90000" value="10000" style="width: 30px;">
            <label>3、显示样式:</label>
            <label><input type="radio" id="showcolor" name="fill">显示填充颜色</label>
            <label><input type="radio" id="showarrow" name="fill">显示坡向箭头</label>
widgets/slope/Widget.js
@@ -41,15 +41,18 @@
                //         roll: 6.2831853016686185
                //     }
                // });
                viewer.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
                    url: 'http://www.supermapol.com/realspace/services/3D-ZF_normal/rest/realspace/datas/image'
                }));
                var slope = new Cesium.SlopeSetting();
                slope.DisplayMode = Cesium.SlopeSettingEnum.DisplayMode.FACE_AND_ARROW;
                slope.MaxVisibleValue = document.getElementById("widemax").value;
                slope.MinVisibleValue = document.getElementById("widemin").value;
                var colorTable = new Cesium.ColorTable();
                colorTable.insert(80, new Cesium.Color(255 / 255, 0 / 255, 0 / 255));
                colorTable.insert(50, new Cesium.Color(221 / 255, 224 / 255, 7 / 255));
                colorTable.insert(30, new Cesium.Color(20 / 255, 187 / 255, 18 / 255));
                colorTable.insert(20, new Cesium.Color(0, 161 / 255, 1));
                colorTable.insert(8000, new Cesium.Color(255 / 255, 0 / 255, 0 / 255));
                colorTable.insert(5000, new Cesium.Color(221 / 255, 224 / 255, 7 / 255));
                colorTable.insert(3000, new Cesium.Color(20 / 255, 187 / 255, 18 / 255));
                colorTable.insert(2000, new Cesium.Color(0, 161 / 255, 1));
                colorTable.insert(0, new Cesium.Color(9 / 255, 9 / 255, 255 / 255));
                var wide;
                wide = Cesium.HypsometricSettingEnum.AnalysisRegionMode.ARM_REGION;
widgets/spatialAnalysis/Widget.html
@@ -5,8 +5,8 @@
            &#x1006;
        </i>
    </div>
    <div class="main">
        <ul id="spatialAnalysis-main">
    <div class="main" id="spatialAnalysis-mains">
        <ul >11
            <!-- <li class="visibleArea-tool"><i><img src="../../images/addL/ksy.png" alt=""></i> <span>可视分析</span></li> -->
            <!-- <li class="visibleArea-tool"><i></i> <span>可视分析</span></li>
            <li class="profileAnalysis-tool"><i></i> <span>剖面分析</span></li>
widgets/spatialAnalysis/Widget.js
@@ -40,19 +40,91 @@
                        name: '剖面分析',
                        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: '坡度分析',
                    //     classs: 'slope-tool',
                    //     img: './images/addL/pdpx.png'
                    // }
                    , {//SQL查询,//做好
                        name: 'SQL查询',
                        classs: 'SQLQuery-tool',
                        img: './images/addL/pdpx.png'
                    }
                ];
                var dom = $('#spatialAnalysis-main');
                var str = '';
                that.beginSpatialAnalysis(domHtmls);
                $('.ccsliu').click(() => {//测试开关 点击图例其他的图片
                    var domHtmls = [
                        {
                            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: 'modesssssllll',
                            img: './images/addL/pdpx.png'
                        }
                        ,
                        {//清除模型
                            name: '清除模型',
                            classs: 'modesssss2222',
                            img: './images/addL/pdpx.png'
                        }
                    ];
                    that.beginSpatialAnalysis(domHtmls);
                    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)
                                }
                            })
                        }
                    })
                })
            },
            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 class="imgs">
@@ -61,109 +133,31 @@
                     <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', '');
                    // // 关闭坡度
                    // topic.publish('closes', '');
                    // $(".jimu-widget-visibleArea").hide();
                    // $(".jimu-widget-profileAnalysis").hide();
                    // $(".jimu-widget-slope").hide();
                })
                })
                // 可视分析
                $('.visibleArea-tool').click(function () {
                    that.closeOnceUse();
                    // 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-profileAnalysis").hide();
                    // $(".jimu-widget-slope").hide();
                    // $('.tool-y-box').stop().hide();
                    // //关闭飞行
                    // $('.jimu-widget-visualAngle').find('.v-a-Two').removeClass('on');//清楚样式
                    // topic.publish('closeFly', 'closeFly');
                    $(".jimu-widget-visibleArea").show();
                })
                // 剖面分析
                $('.profileAnalysis-tool').click(function () {
                    that.closeOnceUse();
                    // 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-slope").hide();
                    // $('.tool-y-box').stop().hide();
                    // //关闭飞行
                    // $('.jimu-widget-visualAngle').find('.v-a-Two').removeClass('on');//清楚样式
                    // topic.publish('closeFly', 'closeFly');
                    $(".jimu-widget-profileAnalysis").show();
                })
                //坡度分析
                $('.slope-tool').click(function () {
                    that.closeOnceUse();
                    // 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();
                    // $('.tool-y-box').stop().hide();
                    // //关闭飞行
                    // $('.jimu-widget-visualAngle').find('.v-a-Two').removeClass('on');//清楚样式
                    // topic.publish('closeFly', 'closeFly');
                    $(".jimu-widget-slope").show();
                    topic.publish('getbeginSlope', this.beginSlope);
@@ -171,38 +165,17 @@
                //模型
                $('.modelDiagram-tool').click(function () {
                    that.closeOnceUse();
                    // 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();
                    // $('.tool-y-box').stop().hide();
                    // $(".jimu-widget-slope").hide();
                    // //关闭飞行
                    // $('.jimu-widget-visualAngle').find('.v-a-Two').removeClass('on');//清楚样式
                    // topic.publish('closeFly', 'closeFly');
                    $('.jimu-widget-modelDiagram').show();
                    // topic.publish('getbeginSlope', this.beginSlope);
                })
                //sql查询
                $('.SQLQuery-tool').click(function () {
                    that.closeOnceUse();
                    $(".jimu-widget-SQLQuery").show();
                    topic.publish('beginSQL', this.beginSQL);
                })
            },
            closeToolBox: function (item) {
                if (item != this.name) {
                    $('.tool-y-box').hide();
@@ -238,6 +211,10 @@
                //清除实体
                this.map.entities.removeAll();
                $(".jimu-widget-modelDiagram").hide();
                //清除SQL查询
                $(".jimu-widget-SQLQuery").hide();
                topic.publish('closesSQL', 'closesSQL');
            },
            onOpen: function () {
                //面板打开的时候触发 (when open this panel trigger)
widgets/visibleArea/Widget.js
@@ -45,6 +45,10 @@
                    color: new Cesium.Color(1.0, 1.0, 1.0, 1),
                    intensity: 0.55
                };
                // var URL_CONFIG = {
                //     SCENE_CBD: 'http://www.supermapol.com/realspace/services/3D-CBDCache20200416/rest/realspace',
                // }
                // var promise = scene.open(URL_CONFIG.SCENE_CBD);
                directionalLight_1 = new Cesium.DirectionalLight(position1, dirLightOptions);//加载光源
                scene.addLightSource(directionalLight_1);
                var viewPosition;
@@ -272,7 +276,7 @@
                        viewModel.horizontalFov = viewshed3D.horizontalFov;
                        viewModel.verticalFov = viewshed3D.verticalFov;
                    } else {
                        console.log('没打开');
                        // console.log('没打开');
                    }
                }, Cesium.ScreenSpaceEventType.RIGHT_CLICK);