| | |
| | | border-radius: 6px; |
| | | background-color: #999; |
| | | } |
| | | .layui-tree-btnGroup .layui-icon{ |
| | | |
| | | .layui-tree-btnGroup .layui-icon { |
| | | display: inline-block; |
| | | color:white |
| | | color: white |
| | | } |
| | | </style> |
| | | |
| | |
| | | layui.use(['tree'], function () { |
| | | var tree = layui.tree |
| | | isloading = true; |
| | | var modelTree=tree.render({ |
| | | var modelTree = tree.render({ |
| | | elem: '#model-tree-list' |
| | | , data: layerMenu |
| | | , edit:["del"] |
| | | , edit: ["del"] |
| | | , showCheckbox: true //是否显示复选框 |
| | | , id: 'model-tree-list' |
| | | , isJump: false //是否允许点击节点时弹出新窗口跳转 |
| | |
| | | var data = obj.data.ext; //获取当前点击的节点数据 |
| | | var viewer = parent.viewer; |
| | | var Cesium = parent.Cesium; |
| | | if (type != 'BaseMap' && type != 'Terrain' && type != 'Plotting') { |
| | | if (type != 'BaseMap' && type != 'Terrain' && type != 'Plotting' && type != 'DDE') { |
| | | var model = undefined; |
| | | switch (obj.data.field) { |
| | | case "Primitive": { |
| | |
| | | break; |
| | | } |
| | | case "shpFeature": { |
| | | let path = data.path; |
| | | let shpArray = JSON.parse(path); |
| | | var shpPromises = []; |
| | | for (let i = 0; i < shpArray.length; i++) { |
| | | shpPromises.push( Cesium.loadBlob(parent.httpConfig.nginxUrl + shpArray[i])); |
| | | } |
| | | |
| | | var layer = null; |
| | | parent.Cesium.when.all(shpPromises, function (files) { |
| | | for(let i=0;i<shpArray.length;i++){ |
| | | files[i].name = shpArray[i]; |
| | | } |
| | | |
| | | var shpProvider = new parent.VectorTileImageryProvider({ |
| | | source: files, |
| | | zIndex: 99, |
| | | removeDuplicate: false, |
| | | defaultStyle: { |
| | | outlineColor: "rgb(255,0,0)", |
| | | fillColor: "rgba(255,0,0,0.6)", |
| | | lineWidth: 1, |
| | | fill: false, |
| | | tileCacheSize: 200, |
| | | showMaker: false, |
| | | showCenterLabel: true, |
| | | fontColor: "rgba(255,0,0,1)", |
| | | labelOffsetX: -10, |
| | | labelOffsetY: -5, |
| | | fontSize: 13, |
| | | fontFamily: "黑体", |
| | | centerLabelPropertyName: "NAME", |
| | | lineCap: "round", |
| | | shadowColor: "black", |
| | | shadowOffsetX: 1, |
| | | shadowOffsetY: -1, |
| | | shadowBlur: 1, |
| | | lineJoin: "round" |
| | | }, |
| | | maximumLevel: 20, |
| | | minimumLevel: 1, |
| | | simplify: false |
| | | }); |
| | | shpProvider.readyPromise.then(function () { |
| | | layer = parent.viewer.imageryLayers.addImageryProvider(shpProvider); |
| | | |
| | | parent.viewer.flyTo(layer); |
| | | parent.Cesium.Camera.DEFAULT_VIEW_RECTANGLE = shpProvider.rectangle; |
| | | |
| | | }); |
| | | |
| | | }); |
| | | |
| | | console.log("shpFeature click"); |
| | | |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | } |
| | | else if (type == 'DDE') { |
| | | var lon, lat, alt; |
| | | lon = obj.data.lon; |
| | | lat = obj.data.lat; |
| | | alt = obj.data.altitude; |
| | | console.log(lon, lat, alt); |
| | | if (lon != undefined && lat != undefined && alt != undefined) { |
| | | let flyPromise = viewer.camera.flyTo({ |
| | | duration: 3, |
| | | destination: Cesium.Cartesian3.fromDegrees(Number(lon), Number(lat), alt), |
| | | orientation: { |
| | | heading: Cesium.Math.toRadians(0), //绕垂直于地心的轴旋转 |
| | | pitch: Cesium.Math.toRadians(-90), //绕纬度线旋转 |
| | | roll: Cesium.Math.toRadians(0) //绕经度线旋转 |
| | | }, |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | , oncheck: function (obj) { |
| | | if (isloading) { |
| | |
| | | var ischeck = obj.checked; |
| | | var objData = obj.data; |
| | | var type = objData.field; |
| | | |
| | | if (type == "shpFeature") {//如果是 shp图层 |
| | | if (ischeck) { |
| | | let data = obj.data.ext; |
| | | |
| | | let path = data.path; |
| | | let shpArray = JSON.parse(path); |
| | | var shpPromises = []; |
| | | for (let i = 0; i < shpArray.length; i++) { |
| | | shpPromises.push(parent.Cesium.loadBlob(parent.httpConfig.nginxUrl + shpArray[i])); |
| | | } |
| | | |
| | | //判断是否存在 |
| | | let len = parent.viewer.imageryLayers.length; |
| | | if (parent.layerMap.get(obj.data.id) != null) { |
| | | parent.vMsg.warning("图层已经存在无需重复加载"); |
| | | return; |
| | | } |
| | | |
| | | var layer = null; |
| | | parent.Cesium.when.all(shpPromises, function (files) { |
| | | for (let i = 0; i < shpArray.length; i++) { |
| | | files[i].name = shpArray[i]; |
| | | } |
| | | |
| | | var shpProvider = new parent.VectorTileImageryProvider({ |
| | | source: files, |
| | | zIndex: len, |
| | | removeDuplicate: false, |
| | | defaultStyle: { |
| | | outlineColor: data.color, |
| | | fillColor: data.color, |
| | | lineWidth: 1, |
| | | fill: true, |
| | | tileCacheSize: 200, |
| | | showMaker: true, |
| | | showCenterLabel: true, |
| | | fontColor: "rgba(255,0,0,1)", |
| | | labelOffsetX: -10, |
| | | labelOffsetY: -5, |
| | | fontSize: 13, |
| | | fontFamily: "黑体", |
| | | centerLabelPropertyName: "NAME", |
| | | lineCap: "round", |
| | | shadowColor: "black", |
| | | shadowOffsetX: 1, |
| | | shadowOffsetY: -1, |
| | | shadowBlur: 1, |
| | | lineJoin: "round" |
| | | }, |
| | | maximumLevel: 20, |
| | | minimumLevel: 1, |
| | | simplify: false |
| | | }); |
| | | shpProvider.readyPromise.then(function () { |
| | | parent.layerMap.set(obj.data.id, len); |
| | | layer = parent.viewer.imageryLayers.addImageryProvider(shpProvider, len); |
| | | |
| | | parent.viewer.flyTo(layer); |
| | | parent.Cesium.Camera.DEFAULT_VIEW_RECTANGLE = shpProvider.rectangle; |
| | | |
| | | }); |
| | | |
| | | }); |
| | | } else {//移除shp |
| | | var id = obj.data.id; |
| | | var index = parent.layerMap.get(id); |
| | | |
| | | parent.viewer.imageryLayers.remove(parent.viewer.imageryLayers.get(index), true); |
| | | parent.layerMap.delete(id); |
| | | for (let key of parent.layerMap.keys()) {//数组的游标-1 |
| | | if (parent.layerMap.get(key) > index) { |
| | | parent.layerMap.set(key, parent.layerMap.get(key) - 1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | if (type != 'BaseMap' && type != 'Terrain' && type != 'Plotting') { |
| | | //changeChecked(ischeck, parent.getNodeById(objData.id)); |
| | | /* |
| | |
| | | } |
| | | } |
| | | //zzf:隐藏除绘图菜单以外的删除按钮 |
| | | $(modelTree.config.elem[0].children[0].childNodes).each(function(){ |
| | | let parentDiv=$(this)[0].childNodes[0]; |
| | | $(parentDiv).find("div .layui-icon-delete").remove(); |
| | | if($(this)[0].dataset.id!="4"){ |
| | | let childrenDiv=$(this)[0].childNodes[1]; |
| | | $(childrenDiv).find("div .layui-icon-delete").remove(); |
| | | $(modelTree.config.elem[0].children[0].childNodes).each(function () { |
| | | let parentDiv = $(this)[0].childNodes[0]; |
| | | $(parentDiv).find("div .layui-icon-delete").remove(); |
| | | if ($(this)[0].dataset.id != "4") { |
| | | let childrenDiv = $(this)[0].childNodes[1]; |
| | | $(childrenDiv).find("div .layui-icon-delete").remove(); |
| | | } |
| | | }) |
| | | function delDrawEntity(modelId){ |
| | | let updateData= { |
| | | "ids":modelId, |
| | | function delDrawEntity(modelId) { |
| | | let updateData = { |
| | | "ids": modelId, |
| | | } |
| | | let token = window.localStorage.getItem("token"); |
| | | $.ajax({ |
| | |
| | | url: parent.httpConfig.webApiUrl + "landstamp/front/removeDrawEntity", |
| | | data: updateData, |
| | | contentType: "application/x-www-form-urlencoded", |
| | | beforeSend:function(request){ |
| | | request.setRequestHeader("token",token); |
| | | beforeSend: function (request) { |
| | | request.setRequestHeader("token", token); |
| | | }, |
| | | success: function (data) { |
| | | console.log(data) |
| | |
| | | request.setRequestHeader("token", token); |
| | | }, |
| | | success: function (data) { |
| | | layerMenu.push(data); |
| | | if (parent.getRootById(data.id) == null) { |
| | | data.isloading = false; |
| | | layerMenu.push(data); |
| | | } |
| | | }, |
| | | error: function (XMLHttpRequest, textStatus, errorThrown) { |
| | | console.log(errorThrown); |