liuyg
2021-06-10 4dd5bff4cd51da0dc6d2420c30f7c759013be7b0
Merge branch 'master' of http://192.168.0.105:10010/r/pyhmap
8 files modified
9696 ■■■■■ changed files
config.json 61 ●●●●● patch | view | raw | blame | history
index.html 2 ●●● patch | view | raw | blame | history
jimu.js/MapManager.js 1 ●●●● patch | view | raw | blame | history
libs/layui/layui/layui.js 9251 ●●●●● patch | view | raw | blame | history
widgets/Basemap/css/style.css 2 ●●● patch | view | raw | blame | history
widgets/LeftNavigationBar/Widget.html 8 ●●●●● patch | view | raw | blame | history
widgets/LeftNavigationBar/Widget.js 288 ●●●● patch | view | raw | blame | history
widgets/LeftNavigationBar/css/style.css 83 ●●●●● patch | view | raw | blame | history
config.json
@@ -50,7 +50,7 @@
        }
      },
      {
        "uri": "widgets/HomeButton/Widget",
        "position": {
@@ -172,7 +172,7 @@
      }, {
        "name": "分屏对比",
        "uri": "widgets/SplitScreen/Widget"
      },{
      }, {
        "name": "搜索栏",
        "uri": "widgets/searchL/Widget"
      }, {
@@ -197,7 +197,7 @@
          "height": "800px",
          "relativeTo": "map"
        }
      },{
      }, {
        "name": "搜索弹窗表格各项弹窗",
        "uri": "widgets/searchTabaPopup/Widget"
      }
@@ -219,13 +219,11 @@
      "right": 0,
      "bottom": 0
    },
    "imageryProviderViewModels": [
      {
    "imageryProviderViewModels": [{
        "name": "天地图矢量",
        "tooltip": "天地图矢量",
        "iconUrl": "images/basemaps/tianditushiliang.png",
        "layers": [
          {
        "layers": [{
            "label": "天地图矢量",
            "type": "wmts",
            "url": "http://t0.tianditu.gov.cn/vec_w/wmts?tk=e9533f5acb2ac470b07f406a4d24b4f0",
@@ -251,8 +249,7 @@
        "name": "天地图影像",
        "tooltip": "天地图全球影像地图服务(国家测绘局)",
        "iconUrl": "images/basemaps/tiandituimage.png",
        "layers": [
          {
        "layers": [{
            "label": "天地图影像",
            "type": "wmts",
            "url": "http://t0.tianditu.gov.cn/img_w/wmts?tk=e9533f5acb2ac470b07f406a4d24b4f0",
@@ -273,22 +270,46 @@
            "maximumLevel": 17
          }
        ]
      }
    ],
    "terrainProviderViewModels": [
      },
      {
        "name": "无地形",
        "tooltip": "WGS84标准球体",
        "iconUrl": "images/basemaps/TerrainEllipsoid.png",
        "url": ""
        "name": "高德地图影像",
        "tooltip": "高德地图全球影像服务",
        "iconUrl": "images/basemaps/tianditushiliang.png",
        "layers": [{
            "label": "高德地图影像",
            "type": "url",
            "url": "https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}",
            "layer": "tdtVecBasicLayer",
            "style": "default",
            "format": "image/png",
            "tileMatrixSetID": "GoogleMapsCompatible",
            "show": false
          },
          {
            "label": "高德地图标注",
            "type": "url",
            "url": "http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}",
            "layer": "tdtVecBasicLayer",
            "style": "default",
            "format": "image/png",
            "tileMatrixSetID": "GoogleMapsCompatible",
            "show": false
          }
        ]
      }
    ],
    "terrainProviderViewModels": [{
      "name": "无地形",
      "tooltip": "WGS84标准球体",
      "iconUrl": "images/basemaps/TerrainEllipsoid.png",
      "url": ""
    }],
    "mapOptions": {
      "positionInfo": {
        "xmin": 115.547800,
        "ymin": 28.820504,
        "xmax": 115.926573,
        "ymax": 28.671158
        "xmin": 114.079032,
        "ymin": 30.223379,
        "xmax": 118.791967,
        "ymax": 28.127233
      },
      "animation": false,
      "baseLayerPicker": true,
index.html
@@ -103,7 +103,7 @@
        }
        .cesium-baseLayerPicker-dropDown {
            width: 220px !important;
            width: 308px !important;
        }
        #main-loading {
jimu.js/MapManager.js
@@ -137,6 +137,7 @@
                        } else if (layerConfig.type == "SuperMap") {
                            layer = new Cesium.SuperMapImageryProvider(layerConfig);
                        }
                        layerArr.push(layer);
                    }
libs/layui/layui/layui.js
Diff too large
widgets/Basemap/css/style.css
@@ -60,7 +60,7 @@
  color: #459DEE;
}
.cesium-baseLayerPicker-dropDown div:nth-child(3) {
.cesium-baseLayerPicker-dropDown>div:nth-child(3) {
  padding-top: 10px;
  border-top: 1px solid #F2F2F2;
}
widgets/LeftNavigationBar/Widget.html
@@ -16,4 +16,12 @@
        </div> -->
        <div id="left-tree-list" class="demo-tree demo-tree-box"></div>
    </div>
    <div class="tree-layer-opcity">
        <h3>图层透明度控制</h3>
        <i class="close layui-icon">&#x1006;</i>
        <ul>
        </ul>
    </div>
</div>
widgets/LeftNavigationBar/Widget.js
@@ -101,12 +101,17 @@
                    }
                })
                $(".jimu-widget-LeftNavigationBar .tree-layer-opcity .close").click(function () {
                    $(".jimu-widget-LeftNavigationBar .tree-layer-opcity").stop().hide();
                })
            },
            closeToolBox: function (item) {},
            onOpen: function () {
                //面板打开的时候触发 (when open this panel trigger)
            },
            onClose: function () {
@@ -134,7 +139,7 @@
                    }
                }).then((res) => {
                    if (res.data.code == '200') {
                        // console.log(res, 'open', 898998)
                        console.log(res, 'open', 898998)
                        that.changeData(res.data.data); //重写数据
                    }
                })
@@ -154,8 +159,19 @@
                                field: String(i),
                                src: d[k].serviceUrl,
                                id: d[k].id,
                                serviceName: d[k].serviceName
                                serviceName: d[k].serviceName,
                                alpha: 1
                            }
                            if (d[k].serviceUrl.indexOf('.openrealspace') != -1) {
                                a.model = true
                            }
                            if (d[k].name == '三维倾斜数据') {
                                a.model = true
                            }
                            b.push(a);
                            i++;
                            if (d[k].children.length != 0) {
@@ -195,13 +211,15 @@
                        layer = layui.layer,
                        util = layui.util,
                        $ = layui.$;
                    var slider = layui.slider;
                    tree.render({
                        elem: '#left-tree-list' //默认是点击节点可进行收缩
                            ,
                        data: data,
                        id: 'demoId1',
                        showCheckbox: true //是否显示复选框
                            ,
                        showCheckbox: true, //是否显示复选框
                        customOperate: true,
                        click: function (obj) {
                            var data = obj.data; //获取当前点击的节点数据
                            // layer.msg('状态:' + obj.state + '<br>节点数据:' + JSON.stringify(data));
@@ -217,8 +235,7 @@
                            // var jh = $(`[data-id='${data.id}']`).find('.layui-tree-entry').eq(0);
                            // jh.addClass('left-navigation-bar-main-current');
                        },
                        showLine: false //是否开启连接线
                            ,
                        showLine: false, //是否开启连接线
                        oncheck: function (obj) {
                            console.log(obj.data.id, '--', obj.checked, obj); //得到当前点击的节点数据
                            // console.log(obj.checked); //得到当前节点的展开状态:open、close、normal
@@ -233,30 +250,78 @@
                                if (obj.checked == true) {
                                    obj.data.children.forEach(item => {
                                        $.ajax({
                                            url: item.src + '/maps.json',
                                            type: 'get',
                                            dataType: 'JSON',
                                            success: function (res) {
                                                that[item.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
                                                    url: res[0].path,
                                                }));
                                            }
                                        })
                                    });
                                    if (obj.data.model) {
                                        obj.data.children.forEach(item => {
                                            var host = that.returnStr(item.src).host;
                                            var scene = that.map.scene;
                                            var partOfUrl = that.returnStr(item.src).partOfUrl;
                                            //添加S3M图层服务
                                            that[item.id] = scene.open(host + partOfUrl);
                                            //定位到场景
                                            Cesium.loadJson(host + partOfUrl + '/scenes.json').then(function (scenes) {
                                                // var sname = scenes[0].name;
                                                // Cesium.loadJson(host + partOfUrl + '/scenes/' + sname + '.json').then(function (jsonData) {
                                                //     var cameraPosition = jsonData.camera;
                                                //     var tilt = Cesium.Math.toRadians(cameraPosition.tilt - 90);
                                                //     Cesium.when(promise, function (layer) {
                                                //         //设置相机位置、视角,便于观察场景
                                                //         scene.camera.setView({
                                                //             destination: new Cesium.Cartesian3.fromDegrees(cameraPosition.longitude, cameraPosition.latitude, cameraPosition.altitude),
                                                //             orientation: {
                                                //                 heading: cameraPosition.heading,
                                                //                 pitch: tilt,
                                                //                 roll: 0
                                                //             }
                                                //         });
                                                //         if (!scene.pickPositionSupported) {
                                                //             alert('不支持深度纹理,无法拾取位置!');
                                                //         }
                                                //     }, function (e) {
                                                //         if (widget._showRenderLoopErrors) {
                                                //             var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
                                                //             widget.showErrorPanel(title, undefined, e);
                                                //         }
                                                //     });
                                                // });
                                            });
                                        });
                                    } else {
                                        obj.data.children.forEach(item => {
                                            $.ajax({
                                                url: item.src + '/maps.json',
                                                type: 'get',
                                                dataType: 'JSON',
                                                success: function (res) {
                                                    that[item.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
                                                        url: res[0].path,
                                                    }));
                                                    that[obj.data.id].alpha = item.alpha
                                                }
                                            })
                                        });
                                    }
                                } else {
                                    obj.data.children.forEach(item => {
                                        if (that[item.id]) that.map.imageryLayers.remove(that[item.id]);
                                    });
                                    if (obj.data.model) {
                                        obj.data.children.forEach(item => {
                                            Cesium.when(that[item.id], function (layer) {
                                                that.map.scene.layers.remove(layer[0].name)
                                            })
                                        });
                                    } else {
                                        obj.data.children.forEach(item => {
                                            if (that[item.id]) that.map.imageryLayers.remove(that[item.id]);
                                        });
                                    }
                                }
@@ -267,33 +332,174 @@
                                if (obj.checked == true) {
                                    $.ajax({
                                        url: obj.data.src + '/maps.json',
                                        type: 'get',
                                        dataType: 'JSON',
                                        success: function (res) {
                                            console.log(res, 123)
                                    if (obj.data.model) {
                                        var host = that.returnStr(obj.data.src).host;
                                        var scene = that.map.scene;
                                        var partOfUrl = that.returnStr(obj.data.src).partOfUrl;
                                        //添加S3M图层服务
                                        that[obj.data.id] = scene.open(host + partOfUrl);
                                        //定位到场景
                                        Cesium.loadJson(host + partOfUrl + '/scenes.json').then(function (scenes) {
                                            // var sname = scenes[0].name;
                                            // Cesium.loadJson(host + partOfUrl + '/scenes/' + sname + '.json').then(function (jsonData) {
                                            //     var cameraPosition = jsonData.camera;
                                            //     var tilt = Cesium.Math.toRadians(cameraPosition.tilt - 90);
                                            //     Cesium.when(promise, function (layer) {
                                            //         //设置相机位置、视角,便于观察场景
                                            //         scene.camera.setView({
                                            //             destination: new Cesium.Cartesian3.fromDegrees(cameraPosition.longitude, cameraPosition.latitude, cameraPosition.altitude),
                                            //             orientation: {
                                            //                 heading: cameraPosition.heading,
                                            //                 pitch: tilt,
                                            //                 roll: 0
                                            //             }
                                            //         });
                                            //         if (!scene.pickPositionSupported) {
                                            //             alert('不支持深度纹理,无法拾取位置!');
                                            //         }
                                            //     }, function (e) {
                                            //         if (widget._showRenderLoopErrors) {
                                            //             var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
                                            //             widget.showErrorPanel(title, undefined, e);
                                            //         }
                                            //     });
                                            // });
                                        });
                                            that[obj.data.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
                                                url: res[0].path,
                                            }));
                                    } else {
                                        }
                                    })
                                        $.ajax({
                                            url: obj.data.src + '/maps.json',
                                            type: 'get',
                                            dataType: 'JSON',
                                            success: function (res) {
                                                console.log(res, 123)
                                                that[obj.data.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
                                                    url: res[0].path,
                                                }));
                                                that[obj.data.id].alpha = obj.data.alpha
                                            }
                                        })
                                    }
                                } else {
                                    if (obj.data.model) {
                                        Cesium.when(that[obj.data.id], function (layer) {
                                            that.map.scene.layers.remove(layer[0].name)
                                        })
                                    that.map.imageryLayers.remove(that[obj.data.id]);
                                    } else {
                                        that.map.imageryLayers.remove(that[obj.data.id]);
                                    }
                                }
                            }
                        },
                        edit: ['add'],
                        operate: function (obj) {
                            var type = obj.type; //得到操作类型: add、edit、 del
                            var data = obj.data; //得到当前节点的数据
                            var elem = obj.elem; //得到当前节点元素var deptId = data.id;//得到节点索引var parentId = data.parentId;l/父节点
                            var depId = data.id;
                            var parentId = data.parentId;
                            if (type == 'add') {
                                $(".jimu-widget-LeftNavigationBar .tree-layer-opcity ul").empty();
                                console.log(type, data, elem, depId, parentId)
                                if (data.children) {
                                    data.children.forEach(item => {
                                        var liC = `<li>
                                        <div title="${item.title}">
                                            ${item.title}
                                        </div>
                                        <div id="${item.id + 'Layer'}">
                                        </div>
                                    </li>`;
                                        $(".jimu-widget-LeftNavigationBar .tree-layer-opcity ul").append(liC)
                                        $(".jimu-widget-LeftNavigationBar .tree-layer-opcity").stop().show();
                                        slider.render({
                                            elem: '#' + item.id + 'Layer',
                                            min: 0,
                                            max: 10,
                                            value: item.alpha * 10,
                                            step: 1,
                                            theme: '#1E9FFF',
                                            showstep: true,
                                            change: function (value) {
                                                item.alpha = value / 10
                                                if (that[item.id]) {
                                                    that[item.id].alpha = item.alpha
                                                }
                                            }
                                        });
                                    })
                                } else {
                                    var liC = `<li>
                                        <div title="${data.title}">
                                            ${data.title}
                                        </div>
                                        <div id="${data.id + 'Layer'}">
                                        </div>
                                    </li>`;
                                    $(".jimu-widget-LeftNavigationBar .tree-layer-opcity ul").append(liC)
                                    $(".jimu-widget-LeftNavigationBar .tree-layer-opcity").stop().show();
                                    slider.render({
                                        elem: '#' + data.id + 'Layer',
                                        min: 0,
                                        max: 10,
                                        value: data.alpha * 10,
                                        step: 1,
                                        theme: '#1E9FFF',
                                        showstep: true,
                                        change: function (value) {
                                            data.alpha = value / 10
                                            if (that[data.id]) {
                                                that[data.id].alpha = data.alpha
                                            }
                                        }
                                    });
                                }
                            }
                        }
                    });
                    console.log($("#left-tree-list > .layui-tree > div"))
                    var jqDom = $("#left-tree-list > .layui-tree > div");
                    for (var i = 0; i < jqDom.length; i++) {
                        if ($(jqDom[i]).text().indexOf("三维倾斜数据") != -1) {
                            $(jqDom[i]).find('.layui-btn-group').remove()
                        }
                    }
                    //按钮事件
                    util.event('lay-demo', {
@@ -318,6 +524,14 @@
                    });
                })
            },
            returnStr: function (url) {
                var startIndex = url.indexOf("/iserver");
                var endIndex = url.indexOf("/scenes");
                return {
                    host: url.substring(0, startIndex),
                    partOfUrl: url.substring(startIndex, endIndex)
                }
            },
            changeImg: true,
            father: [],
            data: [{
widgets/LeftNavigationBar/css/style.css
@@ -51,7 +51,6 @@
.jimu-widget-LeftNavigationBar .left-navigation-bar-main {
  position: relative;
  top: -50px;
  width: 100%;
  height: 100%;
  padding: 10px;
@@ -63,7 +62,9 @@
}
.jimu-widget-LeftNavigationBar .left-navigation-bar-main .l-n-b-m-search {
  width: 100%;
  position: absolute;
  top: 16px;
  width: calc(100% - 20px);
  height: 40px;
  /* padding: 10px; */
  border: 1px rgba(0, 0, 0, .2) solid;
@@ -107,6 +108,17 @@
  font-size: 14px;
}
.jimu-widget-LeftNavigationBar .left-navigation-bar-main #left-tree-list {
  position: absolute;
  top: 72px;
  width: calc(100% - 20px);
  height: calc(100% - 82px);
  overflow-y: auto;
  overflow-x: hidden;
}
.jimu-widget-LeftNavigationBar .left-navigation-bar-main #test1 {
  height: calc(100% - 58px);
  overflow: auto;
@@ -142,4 +154,71 @@
}
.layui-tree-spread .layui-tree-iconArrow:after{
  border-color: #c0c4cc transparent  transparent transparent  !important;
}
.jimu-widget-LeftNavigationBar .layui-tree-main {
  width: calc(100% - 22px);
  padding: 0;
}
.jimu-widget-LeftNavigationBar .layui-tree-txt {
  width: calc(100% - 48px);
  overflow: hidden;
  text-overflow:ellipsis;
  white-space: nowrap;
}
.jimu-widget-LeftNavigationBar .layui-btn-group {
  visibility: visible;
}
.jimu-widget-LeftNavigationBar .layui-btn-group .layui-icon {
  margin-top: 4px;
  width: 20px;
  height: 20px;
  background: url(../../../images/工具(用以切换图层的透明度).png) no-repeat;
}
.jimu-widget-LeftNavigationBar .layui-btn-group .layui-icon:before {
  content: "";
}
.jimu-widget-LeftNavigationBar .tree-layer-opcity {
  display: none;
  position: absolute;
  top: 240px;
  left: 280px;
  width: 260px;
  height: auto;
  background: #Fff;
  border-radius: 5px;
  box-shadow: 0 0 8px #fff;
}
.jimu-widget-LeftNavigationBar .tree-layer-opcity h3 {
  margin: 0;
  height: 36px;
  line-height: 36px;
  text-align: center;
}
.jimu-widget-LeftNavigationBar .tree-layer-opcity .close {
  position: absolute;
  top: 4px;
  right: 4px;
}
.jimu-widget-LeftNavigationBar .tree-layer-opcity li>div:first-child {
  padding: 0 10px;
  line-height: 28px;
  overflow: hidden;
  text-overflow:ellipsis;
  white-space: nowrap;
}
.jimu-widget-LeftNavigationBar .tree-layer-opcity li>div:last-child {
  margin: 10px 10px;
  width: calc(100% - 20px);
}