From 384fe106ad1efd66ef0910a824bff907322570ea Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期四, 17 八月 2023 15:09:37 +0800 Subject: [PATCH] 图层管理,数据类行加载方式修改 --- src/assets/js/Map/server copy.js | 321 +++++++++++++++ src/utils/request.js | 2 src/assets/js/Map/server.js | 488 ++++++++++++++-------- src/assets/img/2D.png | 0 src/assets/img/3D.png | 0 src/views/layer/layerSet.vue | 397 +++--------------- src/utils/auth.js | 2 src/views/layer/layerManage.vue | 7 src/assets/js/Map/config.js | 2 9 files changed, 700 insertions(+), 519 deletions(-) diff --git a/src/assets/img/2D.png b/src/assets/img/2D.png index 6c33ac6..e200f9f 100644 --- a/src/assets/img/2D.png +++ b/src/assets/img/2D.png Binary files differ diff --git a/src/assets/img/3D.png b/src/assets/img/3D.png index f8c347d..f2e3f61 100644 --- a/src/assets/img/3D.png +++ b/src/assets/img/3D.png Binary files differ diff --git a/src/assets/js/Map/config.js b/src/assets/js/Map/config.js index 62018ba..312cdca 100644 --- a/src/assets/js/Map/config.js +++ b/src/assets/js/Map/config.js @@ -16,7 +16,7 @@ //Wmtsserver moonWmts: "http://172.16.2.10:50001/sj_raster/v6/wmts/service/system/10000201/3?ak=mf72ff9295c740ec0f37e61433e8a3ad8d&srs=ESRI:104903", - + proxy: 'http://192.168.20.83:8088/MoonServer', //鍦板舰 moonTerrain: "http://172.16.2.10:50001/sj_raster/v6/terrain_mesh/10013901/45", BASE_URL: "http://192.168.20.83:8088/MoonServer", diff --git a/src/assets/js/Map/server copy.js b/src/assets/js/Map/server copy.js new file mode 100644 index 0000000..b7dfc89 --- /dev/null +++ b/src/assets/js/Map/server copy.js @@ -0,0 +1,321 @@ +import { getToken } from "@/utils/auth"; +//閰嶇疆鏂囦欢鍦板潃 +import config from "./config"; + +const server = { + layerList: [], + addTreeData(treeNode) { + if (!treeNode.checked) { + this.delLayer(treeNode.id); + return; + } + // WMTS -> 鍥剧墖 + // DOM\DEM 褰╄壊\榛戠櫧 + + // TMS -> DOM銆丏EM + // DOM->鍥剧墖 + // DEM -> Terrain + + // URL -> URL + // TMS -> URL DOM DEM + // WMTS -> URL DOM DEM + // WMS -> URL + // WFS -> URL + // Tileset -> URL` + //comment on table lf.sys_res is '璧勬簮琛�'; + // comment on column lf.sys_res.id is '涓婚敭ID'; + // comment on column lf.sys_res.pid is '鐖禝D锛�0-鏍硅妭鐐�'; + // comment on column lf.sys_res.cn_name is '涓枃鍚嶇О'; + // comment on column lf.sys_res.en_name is '鑻辨枃鍚嶇О'; + // comment on column lf.sys_res.type is '绫诲瀷锛�1-鍥惧眰缁�,2-鏅�氬浘灞�,3-浠g悊鍥惧眰'; + // comment on column lf.sys_res.status is '鐘舵�侊細-1-搴熷純锛�0-鍋滅敤锛�1-鍚敤'; + // comment on column lf.sys_res.category is '绫诲瀷锛�0-URL锛�1-TMS锛�2-WMTS锛�3-WFS锛�4-Tileset'; + // comment on column lf.sys_res.firm is '鍘傚晢锛�0-鍏朵粬锛�1-GisServer锛�2-GeoServer锛�3-鏁扮畝'; + // comment on column lf.sys_res.url is '鏈嶅姟鍦板潃'; + // comment on column lf.sys_res.test is '娴嬭瘯鍦板潃'; + // comment on column lf.sys_res.proxy is '浠g悊鍦板潃'; + // comment on column lf.sys_res.descr is '鎻忚堪'; + // comment on column lf.sys_res.depid is '鍗曚綅缂栫爜'; + // comment on column lf.sys_res.dirid is '椤圭洰缂栫爜'; + // comment on column lf.sys_res.img is '缂╃暐鍥�'; + // comment on column lf.sys_res.level is '灞傜骇锛�0-鏍硅妭鐐�'; + // comment on column lf.sys_res.sort is '鎺掑簭'; + // comment on column lf.sys_res.create_user is '鍒涘缓浜篒D'; + // comment on column lf.sys_res.create_time is '鍒涘缓鏃堕棿'; + // comment on column lf.sys_res.update_user is '鏇存柊浜篒D'; + // comment on column lf.sys_res.update_time is '鏇存柊鏃堕棿'; + // comment on column lf.sys_res.bak is '澶囨敞'; + // 浠g悊锛�/proxy/{token}/4 + // 鍦板潃锛歨ttp://192.168.20.83:8088/MoonServer + proxy.replace("{token}", token) + // order_num -> sort + // serve_type -> category + + // switch (treeNode.type) { + // case 1: + // treeNode.useUrl = treeNode.url; + // break; + // case 2: + // treeNode.useUrl = treeNode.url; + // break; + // case 3: + // treeNode.useUrl = treeNode.url; + // + // break; + // } + + + // + // if (treeNode.resid && treeNode.resid > 0) { + + // } else { + + // } + + //鍒ゆ柇鏄惁浠g悊 + //treeNode.proxy鏈夋暟鎹唬鐞�,鏁版嵁涓嶄唬鐞� + + + if (treeNode.proxy) { + this.addProxyAddress(treeNode);//鏈変唬鐞� + } else { + this.addUrlAddress(treeNode);//鏃犱唬鐞� + } + + + // this.addGisServer(treeNode); + // if (treeNode.firm == 2) { + // this.addGeoServer(treeNode); + // } else { + // this.addGisServer(treeNode); + // } + }, + addProxyAddress(res) { + switch (res.data) { + case 1://dom + this.addGisServer(res) + break; + case 2://鍦板舰 + this.addGisServer(res) + break; + case 3: + this.addGisServer(res) + break; + case 4: + this.addGisServer(res) + break; + case 5: + this.addGisServer(res) + break; + case 6: + this.addGisServer(res) + break; + case 7: + this.addGisServer(res) + break; + case 8: + break; + } + }, + + addUrlAddress(res) { + switch (res.data) { + case 1://dom + this.addGeoServer(res) + break; + case 2://鍦板舰 + this.addGeoServer(res) + break; + case 3: + this.addGeoServer(res) + break; + case 4: + this.addGeoServer(res) + break; + case 5: + this.addGeoServer(res) + break; + case 6: + this.addGeoServer(res) + break; + case 7: + this.addGeoServer(res) + break; + case 8: + break; + } + }, + + + //娓呴櫎鍥惧眰 + delLayer(code) { + this.layerList.forEach((e, i) => { + if (e.id === code) { + switch (e.type) { + case "wmts": + window.Viewer.imageryLayers.remove(e.layerData.item); + break; + case "tms": + window.Viewer.imageryLayers.remove(e.layerData.item); + break; + case "dem": + window.Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider( + {} + ); + break; + } + this.layerList.splice(i, 1); + } + }); + }, + addGisServer(treeNode) { + // 0-URL锛�1-TMS锛�2-WMTS锛�3-WFS锛�4-Tileset'; + //鍒ゆ柇鏈嶅姟鏄惁宸插瓨鍦� + var service = []; + if (this.layerList.length > 0) { + service = this.layerList.filter((res) => { + if (res.id == treeNode.id) { + return res + } + }) + } + if (service.length > 0) return + var url = null; + + if (treeNode.proxy && treeNode.proxy.indexOf('{token}') > -1) { + const token = getToken() + url = config.proxy + treeNode.proxy.replaceAll("{token}", token) + } + console.log(url) + switch (treeNode.type) { + case 1: + this.AddTmsLayer(url, treeNode.data, treeNode.id); + break; + case 2: + this.AddWmtesLayer(url, treeNode.id); + break; + case 3: + break; + case 4: + break; + } + }, + addGeoServer(treeNode) { + // 0-URL锛�1-TMS锛�2-WMTS锛�3-WFS锛�4-Tileset'; + + switch (treeNode.type) { + case 1: + break; + case 2: + + break; + case 3: + this.AddGeoWmsLayer(treeNode.url, treeNode.id, treeNode.tab); + break; + case 4: + break; + } + }, + //娣诲姞geoserver鏈嶅姟wms鏈嶅姟 + AddGeoWmsLayer(url, id, tab) { + if (!tab) return + + let layer = new SmartEarth.Cesium.WebMapServiceImageryProvider({ + // url: "http://192.168.22.198:8090/geoserver/moon/wms", + url: url, + layers: "moon:geo_alkaline_rock_suite", + parameters: { + transparent: true, + format: "image/png", + srs: "EPSG:104903", + styles: "", + }, + tileWidth: 512, + tileHeight: 512, + }); + layer.name = `Wms_Layer${id}`; + + let img_layer = Viewer.imageryLayers.addImageryProvider(layer); + this.layerList.push({ id: id, layerData: img_layer, type: "wmts" }); + }, + //娣诲姞GisServer鏈嶅姟TMS鍒囩墖鏈嶅姟 + AddTmsLayer(url, data, id) { + // var urlTemplateImageryProvider = new SmartEarth.Cesium.UrlTemplateImageryProvider({ + // url: url + "/{z}/{x}/{y}.png" + // }); + // Viewer.imageryLayers.addImageryProvider(urlTemplateImageryProvider); + + if (data == '0' || data == '1') { + let img_layer = earthCtrl.Creator.createUrlTemplateImageryProvider( + "tms鏈嶅姟", + { + url: Cesium.buildModuleUrl(url + "/{z}/{x}/{y}.png"), + }, + "0", + undefined, + true, + "" + ); + this.layerList.push({ id: id, layerData: img_layer, type: "tms" }); + } else if (data == '2') { + window.terrainLayer = new Cesium.CesiumTerrainProvider({ + url: url + }); + Viewer.terrainProvider = window.terrainLayer + this.layerList.push({ id: id, type: "dem", }); + } + }, + AddWmtesLayer(url, id) { + var urlTemplateImageryProvider = earthCtrl.factory.createImageryLayer({ + sourceType: "wmts", + url: url, + layer: "", + format: "image/png", + tileMatrixSetID: "GoogleCRS84Quad01", + tileMatrixLabels: [ + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + ], + style: "", + tilingScheme: new Cesium.GeographicTilingScheme({ + ellipsoid: Cesium.Ellipsoid.MOON, + }), + }); + console.log(urlTemplateImageryProvider); + this.layerList.push({ + id: id, + layerData: urlTemplateImageryProvider._primitive, + type: "wmts", + }); + }, + AddDemLayer(url, id) { + var terrain = new Cesium.CesiumTerrainProvider({ + url: config.moonTerrain, + // url: url, + tilingScheme: new Cesium.GeographicTilingScheme({ + ellipsoid: Cesium.Ellipsoid.MOON, + }), + }); + window.Viewer.terrainProvider = terrain; + + // let img_layer = Viewer.imageryLayers.addImageryProvider(layer); + this.layerList.push({ id: id, type: "dem" }); + }, +}; +export default server; diff --git a/src/assets/js/Map/server.js b/src/assets/js/Map/server.js index 4a127a7..c1064af 100644 --- a/src/assets/js/Map/server.js +++ b/src/assets/js/Map/server.js @@ -9,192 +9,204 @@ this.delLayer(treeNode.id); return; } - // WMTS -> 鍥剧墖 - // DOM\DEM 褰╄壊\榛戠櫧 - - // TMS -> DOM銆丏EM - // DOM->鍥剧墖 - // DEM -> Terrain - - // URL -> URL - // TMS -> URL DOM DEM - // WMTS -> URL DOM DEM - // WMS -> URL - // WFS -> URL - // Tileset -> URL` - //comment on table lf.sys_res is '璧勬簮琛�'; - // comment on column lf.sys_res.id is '涓婚敭ID'; - // comment on column lf.sys_res.pid is '鐖禝D锛�0-鏍硅妭鐐�'; - // comment on column lf.sys_res.cn_name is '涓枃鍚嶇О'; - // comment on column lf.sys_res.en_name is '鑻辨枃鍚嶇О'; - // comment on column lf.sys_res.type is '绫诲瀷锛�1-鍥惧眰缁�,2-鏅�氬浘灞�,3-浠g悊鍥惧眰'; - // comment on column lf.sys_res.status is '鐘舵�侊細-1-搴熷純锛�0-鍋滅敤锛�1-鍚敤'; - // comment on column lf.sys_res.category is '绫诲瀷锛�0-URL锛�1-TMS锛�2-WMTS锛�3-WFS锛�4-Tileset'; - // comment on column lf.sys_res.firm is '鍘傚晢锛�0-鍏朵粬锛�1-GisServer锛�2-GeoServer锛�3-鏁扮畝'; - // comment on column lf.sys_res.url is '鏈嶅姟鍦板潃'; - // comment on column lf.sys_res.test is '娴嬭瘯鍦板潃'; - // comment on column lf.sys_res.proxy is '浠g悊鍦板潃'; - // comment on column lf.sys_res.descr is '鎻忚堪'; - // comment on column lf.sys_res.depid is '鍗曚綅缂栫爜'; - // comment on column lf.sys_res.dirid is '椤圭洰缂栫爜'; - // comment on column lf.sys_res.img is '缂╃暐鍥�'; - // comment on column lf.sys_res.level is '灞傜骇锛�0-鏍硅妭鐐�'; - // comment on column lf.sys_res.sort is '鎺掑簭'; - // comment on column lf.sys_res.create_user is '鍒涘缓浜篒D'; - // comment on column lf.sys_res.create_time is '鍒涘缓鏃堕棿'; - // comment on column lf.sys_res.update_user is '鏇存柊浜篒D'; - // comment on column lf.sys_res.update_time is '鏇存柊鏃堕棿'; - // comment on column lf.sys_res.bak is '澶囨敞'; - // 浠g悊锛�/proxy/{token}/4 - // 鍦板潃锛歨ttp://192.168.20.83:8088/MoonServer + proxy.replace("{token}", token) - // order_num -> sort - // serve_type -> category - - // switch (treeNode.type) { - // case 1: - // treeNode.useUrl = treeNode.url; - // break; - // case 2: - // treeNode.useUrl = treeNode.url; - // break; - // case 3: - // treeNode.useUrl = treeNode.url; - // // var token = getToken(); - // // treeNode.useUrl = BASE_URL + treeNode.proxy.replace("{token}", token); - // break; - // } - - - - if (treeNode.resid && treeNode.resid > 0) { - + //鍒ゆ柇鏄惁涓轰唬鐞� + if (treeNode.proxy) { + this.addProxyAddress(treeNode);//鏈変唬鐞� } else { - console.log(treeNode) + this.addUrlAddress(treeNode);//鏃犱唬鐞� + } + }, + //浠g悊鍦板潃 + addProxyAddress(res) { + //鍒ゆ柇鏁版嵁绫诲瀷 + switch (res.data) { + case 1://鏁板瓧姝e皠褰卞儚鍥� + this.setDataType(res); + break; + case 2://鍦烘櫙鍦板舰鏁版嵁 + this.setTerrainData(res); + break; + case 3://鏁板瓧楂樼▼妯″瀷锛堟檿娓插浘锛� + this.setDataType(res); + break; + case 4://鍗曟尝娈垫爡鏍兼暟鎹� + this.setDataType(res); + break; + case 5://澶氬厜璋辨爡鏍兼暟鎹� + this.setDataType(res); + break; + case 6://楂樺厜璋辨爡鏍兼暟鎹� + this.setDataType(res); + break; + case 7://鐭㈤噺鍥惧眰 + this.setVectorData(res); + break; + case 8://涓夌淮妯″瀷 + this.setModelData(res); + break; + } + }, + //鏅�氬湴鍧� + addUrlAddress(res) { + switch (res.category) { + case 0://鍏朵粬 + + break; + case 1://GisServer + this.addProxyAddress(res); + break; + case 2://GeoServer + this.addGeoServerAddress(res); + break; + case 3://鏁扮畝 + this.addProxyAddress(res); + break; } - this.addGisServer(treeNode); - // if (treeNode.firm == 2) { - // this.addGeoServer(treeNode); - // } else { - // this.addGisServer(treeNode); - // } }, - //娓呴櫎鍥惧眰 - delLayer(code) { - this.layerList.forEach((e, i) => { - if (e.id === code) { - switch (e.type) { - case "wmts": - window.Viewer.imageryLayers.remove(e.layerData.item); - break; - case "tms": - - window.Viewer.imageryLayers.remove(e.layerData.item); - break; - case "dem": - window.Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider( - {} - ); - break; - } - this.layerList.splice(i, 1); - } - }); - }, - addGisServer(treeNode) { - // 0-URL锛�1-TMS锛�2-WMTS锛�3-WFS锛�4-Tileset'; - //鍒ゆ柇鏈嶅姟鏄惁宸插瓨鍦� - var service = []; - if (this.layerList.length > 0) { - service = this.layerList.filter((res) => { - if (res.id == treeNode.id) { - return res - } - }) + //Geoserver鏈嶅姟 + addGeoServerAddress(res) { + //鍒ゆ柇鏁版嵁绫诲瀷 + switch (res.data) { + case 1://鏁板瓧姝e皠褰卞儚鍥� + this.setGeoDataType(res); + break; + case 2://鍦烘櫙鍦板舰鏁版嵁 + this.setTerrainData(res); + break; + case 3://鏁板瓧楂樼▼妯″瀷锛堟檿娓插浘锛� + this.setGeoDataType(res); + break; + case 4://鍗曟尝娈垫爡鏍兼暟鎹� + this.setGeoDataType(res); + break; + case 5://澶氬厜璋辨爡鏍兼暟鎹� + this.setGeoDataType(res); + break; + case 6://楂樺厜璋辨爡鏍兼暟鎹� + this.setGeoDataType(res); + break; + case 7://鐭㈤噺鍥惧眰 + this.setGeoVectorData(res); + break; + case 8://涓夌淮妯″瀷 + this.setModelData(res); + break; } - if (service.length > 0) return - var url = null; - if (treeNode.useUrl && treeNode.useUrl.indexOf('{token}') > -1) { + }, + setGeoDataType() { + switch (res.type) { + case 0://URL + break; + case 1://TMS + this.setAddTmsLayer(res); + break; + case 2://WMTS + this.setAddWmtsLayer(res); + break; + case 3://WMS + this.setAddGeoWmsLayer(res); + break; + } + }, + setGeoVectorData(res) { + switch (res.type) { + case 0://URL + break; + case 3://WMS + this.setAddGeoWmsLayer(res); + break; + case 4://WFS + + break; + } + }, + + + + + + setDataType(res) { + switch (res.type) { + case 0://URL + break; + case 1://TMS + this.setAddTmsLayer(res); + break; + case 2://WMTS + this.setAddWmtsLayer(res); + break; + case 3://WMS + this.setAddWmsLayer(res); + break; + } + }, + + setTerrainData(res) { + switch (res.type) { + case 0://URL + this.setAddTearrinLayer(res) + break; + case 1://TMS + this.setAddTearrinLayer(res); + break; + } + }, + setVectorData(res) { + switch (res.type) { + case 0://URL + + break; + case 3://WMS + this.setAddWmsLayer(res); + break; + case 4://WFS + + break; + } + }, + setModelData(res) { + switch (res.type) { + case 0://Tileset + this.setAddModelLayer(res); + break; + case 3://WMS + this.setAddModelLayer(res); + break; + case 5://WFS + + break; + } + }, + //鑾峰彇鏈嶅姟鍦板潃 + getLayrUrl(res) { + var url; + if (res.proxy) { const token = getToken() - url = config.BASE_URL + treeNode.proxy.replaceAll("{token}", token) + url = config.proxy + res.proxy.replaceAll("{token}", token) } else { - url = treeNode.useUrl + url = res.url; } - switch (treeNode.type) { - case 1: - this.AddTmsLayer(url, treeNode.data, treeNode.id); - break; - case 2: - this.AddWmtesLayer(url, treeNode.id); - break; - case 3: - break; - case 4: - break; - } + return url }, - addGeoServer(treeNode) { - // 0-URL锛�1-TMS锛�2-WMTS锛�3-WFS锛�4-Tileset'; - switch (treeNode.type) { - case 1: - break; - case 2: - this.AddGeoWmsLayer(treeNode.useUrl, treeNode.id, treeNode.tab); - break; - case 3: - break; - case 4: - break; - } - }, - //娣诲姞geoserver鏈嶅姟wms鏈嶅姟 - AddGeoWmsLayer(url, id, tab) { - let layer = new SmartEarth.Cesium.WebMapServiceImageryProvider({ - // url: "http://192.168.22.198:8090/geoserver/moon/wms", - url: url, - layers: tab, - parameters: { - transparent: true, - format: "image/png", - srs: "EPSG:104903", - styles: "", + //鍔犺浇TMS鏈嶅姟 + setAddTmsLayer(res) { + var url = this.getLayrUrl(res) + let img_layer = earthCtrl.Creator.createUrlTemplateImageryProvider( + "tms鏈嶅姟", + { + url: Cesium.buildModuleUrl(url + "/{z}/{x}/{y}.png"), }, - tileWidth: 512, - tileHeight: 512, - }); - layer.name = `Wms_Layer${id}`; - - let img_layer = Viewer.imageryLayers.addImageryProvider(layer); - this.layerList.push({ id: id, layerData: img_layer, type: "wmts" }); + "0", + undefined, + true, + "" + ); + this.layerList.push({ id: res.id, layerData: img_layer, type: "tms" }); }, - //娣诲姞GisServer鏈嶅姟TMS鍒囩墖鏈嶅姟 - AddTmsLayer(url, data, id) { - // var urlTemplateImageryProvider = new SmartEarth.Cesium.UrlTemplateImageryProvider({ - // url: url + "/{z}/{x}/{y}.png" - // }); - // Viewer.imageryLayers.addImageryProvider(urlTemplateImageryProvider); - - if (data == '0' || data == '1') { - let img_layer = earthCtrl.Creator.createUrlTemplateImageryProvider( - "tms鏈嶅姟", - { - url: Cesium.buildModuleUrl(url + "/{z}/{x}/{y}.png"), - }, - "0", - undefined, - true, - "" - ); - this.layerList.push({ id: id, layerData: img_layer, type: "tms" }); - } else if (data == '2') { - window.terrainLayer = new Cesium.CesiumTerrainProvider({ - url: url - }); - Viewer.terrainProvider = window.terrainLayer - this.layerList.push({ id: id, type: "dem", }); - } - }, - AddWmtesLayer(url, id) { + //鍔犺浇WMTS鏈嶅姟 + setAddWmtsLayer(res) { + var url = this.getLayrUrl(res) var urlTemplateImageryProvider = earthCtrl.factory.createImageryLayer({ sourceType: "wmts", url: url, @@ -227,25 +239,127 @@ ellipsoid: Cesium.Ellipsoid.MOON, }), }); - console.log(urlTemplateImageryProvider); this.layerList.push({ - id: id, + id: res.id, layerData: urlTemplateImageryProvider._primitive, type: "wmts", }); }, - AddDemLayer(url, id) { - var terrain = new Cesium.CesiumTerrainProvider({ - url: config.moonTerrain, - // url: url, - tilingScheme: new Cesium.GeographicTilingScheme({ - ellipsoid: Cesium.Ellipsoid.MOON, - }), + //鍔犺浇鍦板舰鏈嶅姟 + setAddTearrinLayer(res) { + this.setChangeTearrinLayer(); + var url = this.getLayrUrl(res) + window.terrainLayer = new Cesium.CesiumTerrainProvider({ + url: url }); - window.Viewer.terrainProvider = terrain; + Viewer.terrainProvider = window.terrainLayer + this.layerList.push({ id: res.id, type: "dem", }); + }, + //鍔犺浇WMS鏈嶅姟 + setAddWmsLayer(res) { + var url = this.getLayrUrl(res) + var img_layer = sgworld.Creator.createImageryProvider('giserver', "wms", { + url: url, + layers: '', + parameters: { + format: "image/png", + transparent: true, + } + }, "0", undefined, true, ""); + this.layerList.push({ + id: res.id, + layerData: img_layer, + type: "wmts", + }); - // let img_layer = Viewer.imageryLayers.addImageryProvider(layer); - this.layerList.push({ id: id, type: "dem" }); + }, + //鍔犺浇妯″瀷鏈嶅姟 + setAddModelLayer(res) { + var url = this.getLayrUrl(res); + let tileset = Viewer.scene.primitives.add( + new Cesium.Cesium3DTileset({ + name: res.cnName, + url: url, + skipLevelOfDetail: true, // 鍦ㄩ亶鍘嗘椂鍊欒烦杩囪鎯咃細false + baseScreenSpaceError: 1024, + maximumScreenSpaceError: 64, // 鏈�澶у睆骞曠┖闂撮敊璇細16锛屾暟鍊煎姞澶ц兘璁╂渶缁堟垚鍍忓彉妯$硦 + skipScreenSpaceErrorFactor: 16, + skipLevels: 1, + immediatelyLoadDesiredLevelOfDetail: false, + loadSiblings: true, // 鑷姩浠庝腑蹇冨紑濮嬭秴娓呭寲妯″瀷锛歠alse + cullWithChildrenBounds: true, // 浣跨敤瀛愰」杈圭晫浣撶Н鐨勫苟闆嗘潵鍓旈櫎鍥惧潡锛歵rue + cullRequestsWhileMoving: true, + cullRequestsWhileMovingMultiplier: 10, // 鍊艰秺灏忚兘澶熸洿蹇殑鍓旈櫎锛�60 + preloadWhenHidden: true, + preferLeaves: true, // 棰勮瀛愯妭鐐癸細false + maximumMemoryUsage: 768, // 鍐呭瓨鍒嗛厤鍙樺皬鏈夊埄浜庡唴瀛樺洖鏀讹紝鎻愬崌鎬ц兘浣撻獙 + progressiveResolutionHeightFraction: 0.5, // 鏁板�煎亸浜�0鑳藉璁╁垵濮嬪姞杞藉彉寰楁ā绯� + dynamicScreenSpaceErrorDensity: 0.5, // 鏁板�煎姞澶э紝鑳借鍛ㄨ竟鍔犺浇鍙樺揩 + dynamicScreenSpaceErrorFactor: 2, // 鍔ㄦ�佸睆骞曠┖闂磋宸殑绯绘暟 + dynamicScreenSpaceError: true, // 鍑忓皯绂荤浉鏈鸿緝杩滅殑灞忓箷绌洪棿閿欒锛歠alse锛屽叏灞忓姞杞藉畬涔嬪悗鎵嶆竻鏅板寲鎴垮眿 + }) + + ); + tileset.readyPromise.then((tileset) => { + tileset.id = res.id; + }); + }, + //鍦板舰绉婚櫎浜嬩欢 + setChangeTearrinLayer() { + this.layerList.forEach((e, i) => { + switch (e.type) { + case "dem": + window.Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider( + {} + ); + this.layerList.splice(i, 1); + break; + } + }) + }, + + //娓呴櫎鍥惧眰 + delLayer(code) { + this.layerList.forEach((e, i) => { + if (e.id === code) { + switch (e.type) { + case "wmts": + debugger + window.Viewer.imageryLayers.remove(e.layerData); + break; + case "tms": + window.Viewer.imageryLayers.remove(e.layerData); + break; + case "dem": + window.Viewer.terrainProvider = new Cesium.EllipsoidTerrainProvider( + {} + ); + break; + case "": + break; + } + this.layerList.splice(i, 1); + } + }); + }, + //鍔犺浇GeoServer-WMS鏈嶅姟 + setAddGeoWmsLayer(res) { + var url = this.getLayrUrl(res); + let layer = new SmartEarth.Cesium.WebMapServiceImageryProvider({ + url: url, + layers: res.tab, + parameters: { + transparent: true, + format: "image/png", + srs: "EPSG:104903", + styles: "", + }, + tileWidth: 512, + tileHeight: 512, + }); + layer.name = `Wms_Layer${res.id}`; + let img_layer = window.Viewer.imageryLayers.addImageryProvider(layer); + this.layerList.push({ id: res.id, layerData: img_layer, type: "wmts" }); }, }; export default server; diff --git a/src/utils/auth.js b/src/utils/auth.js index 8d4fff7..bff89e4 100644 --- a/src/utils/auth.js +++ b/src/utils/auth.js @@ -1,7 +1,7 @@ const TokenKey = 'Admin-Token'; export function getToken() { - console.log(window.sessionStorage.getItem(TokenKey)); + // console.log(window.sessionStorage.getItem(TokenKey)); return window.sessionStorage.getItem(TokenKey); } diff --git a/src/utils/request.js b/src/utils/request.js index 6c597b8..989b44e 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -48,7 +48,7 @@ if (response.data.code !== 200) { // ElMessage.error(response.data.msg); } - if (response.data.code !== 200 && response.data.msg == "鐢ㄦ埛鏈櫥褰�") { + if (response.data.code !== 200 && response.data.result == "鐢ㄦ埛鏈櫥褰�") { ElMessage.error("鐧诲綍杩囨湡锛岃閲嶆柊鐧诲綍"); router.push({ path: "/login" }); } diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue index 2d497c0..fda3210 100644 --- a/src/views/layer/layerManage.vue +++ b/src/views/layer/layerManage.vue @@ -167,10 +167,7 @@ DefaultId.value.forEach((v) => { if (e.id == v) { setVisiable(e, true); - } else { - if (e.children) { - defaultLayer(e.children); - } + // return; } }); }); @@ -261,7 +258,7 @@ //娣诲姞榛樿閫変腑鍥惧眰 layerListData.value = dt.result; - defaultLayer(treeData.value); + defaultLayer(dt.result); nextTick(() => { let son = estreeRef.value.getCheckedNodes(); diff --git a/src/views/layer/layerSet.vue b/src/views/layer/layerSet.vue index 4f453fc..3908cd2 100644 --- a/src/views/layer/layerSet.vue +++ b/src/views/layer/layerSet.vue @@ -20,14 +20,51 @@ @node-click="handleNodeClick" ref="treeRef" /> + + <!-- <div class="contentBox" v-for="(item, i) in menuOption" :key="i"> + <div + class="contentTile" + @click.stop="selectList(item)" + :class="{ highlight: item.id == selectedNodeId }" + > + <div class="contentLeft"> + <div class="contentImg"></div> + <div class="contentLabel">{{ item.name }}</div> + </div> + <div class="contentRight"> + <div> + <div + @click="handlIsShow(item.name)" + class="contentUP" + :class="{ accordion: item.isShow }" + ></div> + </div> + </div> + </div> + + <div class="content" v-show="item.isShow"> + <div + class="layer_box" + v-for="(v, k) in item.children" + :key="k" + @click.stop="selectList(v)" + :class="{ highlight: v.id == selectedNodeId }" + > + <div class="contentLeft"> + <div class="contentImg"></div> + <div class="contentLabel">{{ v.name }}</div> + </div> + </div> + </div> + </div> --> </div> </div> <div class="edit_box"> <div class="edit_box_btn btnstyle"> - <el-button type="primary" :icon="Plus" @click="insertLayerData(1)" + <el-button type="primary" :icon="Plus" @click="added('t')" >鏂板鍚岀骇</el-button > - <el-button type="primary" :icon="Plus" @click="insertLayerData(2)" + <el-button type="primary" :icon="Plus" @click="added('z')" >鏂板瀛愮骇</el-button > <el-button @@ -45,168 +82,44 @@ > </div> <div class="edit_box_form"> - <el-form :model="formInline" label-width="120px"> + <el-form :model="form" label-width="120px"> <el-form-item label="閫変腑鍥惧眰"> - <el-select style="width: 100%" v-model="formInline.isLayer"> - <el-option label="鍥惧眰缁�" value="0"></el-option> - <el-option label="鍥惧眰" value="1"></el-option> - </el-select> + <el-input + v-model="form.selectName" + disabled + placeholder="鐐瑰嚮鍥惧眰鏍戦�夋嫨" + /> </el-form-item> - <!-- 鏈嶅姟璧勬簮--> - <el-form-item v-show="formInline.isLayer == 1" label="鏈嶅姟璧勬簮"> - <el-button - size="small" - class="serviceButton" - @click="setServiceChange('0')" - key="0" - :class="{ serviceActive: !serviceActive }" - >鍚�</el-button - > - <el-button - size="small" - class="serviceButton" - @click="setServiceChange('1')" - key="1" - :class="{ serviceActive: serviceActive }" - >鏄�</el-button - > - </el-form-item> - <el-form-item label="鍥惧眰鍚嶇О"> - <el-input - v-model="formInline.cnName" - placeholder="璇疯緭鍏ュ浘灞傚悕绉�" - /> + <el-input v-model="form.name" placeholder="璇疯緭鍏ュ浘灞傚悕绉�" /> </el-form-item> - <!-- 鏁版嵁绫诲瀷 --> - <el-form-item v-show="formInline.isLayer == 1" label="鏁版嵁绫诲瀷"> + <el-form-item label="鍥惧眰绫诲瀷"> <el-select style="width: 100%" - v-model="formInline.data" - :disabled="serviceActive" - @change="setFromDataTypeClick" + v-model="form.region" + placeholder="璇烽�夋嫨鍥惧眰绫诲瀷" > <el-option - v-for="item in serveType" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - </el-form-item> - <!-- 鏁版嵁绫诲瀷 --> - <el-form-item v-show="formInline.isLayer == 1" label="鏈嶅姟绫诲瀷"> - <el-select - style="width: 100%" - v-model="formInline.type" - :disabled="serviceActive" - > - <el-option - v-for="item in dataType" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> + v-for="(e, i) in stretchOptions" + :label="e.label" + :value="e.value" + :key="i" + /> </el-select> </el-form-item> - <el-form-item label="鏈嶅姟鍦板潃" v-show="formInline.isLayer == 1"> - <el-input - v-model="formInline.serviceUrl" - placeholder="璇疯緭鍏ユ湇鍔″湴鍧�" - :disabled="serviceActive" - /> + <el-form-item label="鏈嶅姟鍦板潃"> + <el-input v-model="form.layerUrl" placeholder="璇疯緭鍏ユ湇鍔″湴鍧�" /> </el-form-item> <el-form-item> - <div class="btnstyle editBtn"> + <!-- <div class="btnstyle editBtn"> <el-button type="primary" @click="onSubmit">纭畾</el-button> - <el-button class="delbtn" @click="updateRest">鍙栨秷</el-button> - </div> + <el-button class="delbtn">鍙栨秷</el-button> + </div> --> </el-form-item> </el-form> </div> </div> - <el-dialog title="鏂板" v-model:visible="dialogVisible" width="50%"> - <div style="width: 100%; max-height: 63vh; overflow-y: auto"> - <el-form :model="formInline" label-width="120px"> - <el-form-item label="閫変腑鍥惧眰"> - <el-select style="width: 100%" v-model="formInline.isLayer"> - <el-option label="鍥惧眰缁�" value="0"></el-option> - <el-option label="鍥惧眰" value="1"></el-option> - </el-select> - </el-form-item> - <!-- 鏈嶅姟璧勬簮--> - <el-form-item v-show="formInline.isLayer == 1" label="鏈嶅姟璧勬簮"> - <el-button - size="small" - class="serviceButton" - @click="setServiceChange('0')" - key="0" - :class="{ serviceActive: !serviceActive }" - >鍚�</el-button - > - <el-button - size="small" - class="serviceButton" - @click="setServiceChange('1')" - key="1" - :class="{ serviceActive: serviceActive }" - >鏄�</el-button - > - </el-form-item> - - <el-form-item label="鍥惧眰鍚嶇О"> - <el-input - v-model="formInline.cnName" - placeholder="璇疯緭鍏ュ浘灞傚悕绉�" - /> - </el-form-item> - <!-- 鏁版嵁绫诲瀷 --> - <el-form-item v-show="formInline.isLayer == 1" label="鏁版嵁绫诲瀷"> - <el-select - style="width: 100%" - v-model="formInline.data" - @change="setFromDataTypeClick" - > - <el-option - v-for="item in serveType" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - </el-form-item> - <!-- 鏁版嵁绫诲瀷 --> - <el-form-item v-show="formInline.isLayer == 1" label="鏈嶅姟绫诲瀷"> - <el-select style="width: 100%" v-model="formInline.type"> - <el-option - v-for="item in dataType" - :key="item.value" - :label="item.label" - :value="item.value" - > - </el-option> - </el-select> - </el-form-item> - - <el-form-item label="鏈嶅姟鍦板潃" v-show="formInline.isLayer == 1"> - <el-input - v-model="formInline.serviceUrl" - placeholder="璇疯緭鍏ユ湇鍔″湴鍧�" - /> - </el-form-item> - <el-form-item> - <div class="btnstyle editBtn"> - <el-button type="primary" @click="onSubmit">纭畾</el-button> - <el-button class="delbtn" @click="updateRest">鍙栨秷</el-button> - </div> - </el-form-item> - </el-form> - </div> - </el-dialog> </div> </template> @@ -221,8 +134,6 @@ } from "vue"; import { Plus, Delete, Top, Bottom } from "@element-plus/icons-vue"; import { ElMessage } from "element-plus"; -import { serve_type, data_type } from "./js/layerManage.js"; -import { removeToken, getToken } from "@/utils/auth"; const stretchValue = ref(""); const emits = defineEmits(["SETstate", "addlayer", "delLayer"]); //defineProps 鏉ユ帴鏀剁粍浠剁殑浼犲�� @@ -254,134 +165,21 @@ }, ]; -const formInline = ref({ - cnName: null, - type: null, - serveType: null, - url: null, - dataType: null, - bak: null, - isShow: "1", - isProject: "0", - enName: "", - isLayer: null, - category: null, - status: null, - service: "0", - serviceUrl: null, -}); -const insertData = ref({ - cnName: null, - type: null, - serveType: null, - url: null, - dataType: null, - bak: null, - isShow: "1", - isProject: "0", - enName: "", - isLayer: null, - category: null, - status: null, - service: "0", - serviceUrl: null, +const form = reactive({ + name: "", + region: "", + selectName: "", + layerUrl: "", + children: [], }); const props = { label: "cnName", children: "children", }; -let dialogVisible = ref(false); // 褰撳墠閫変腑鐨勮妭鐐� id const selectedNodeId = ref(null as any); //鍋氱被鍨嬫柇瑷�澶勭悊 const selectedObj = ref(null); let menuOption = ref([]); -let serviceActive = ref(false); -let dataType = ref(null); -let serveType = ref(null); -let backUpData = ref(null); -const insertLayerData = (res) => { - // if (res == 1) { - // //鏂板鍚岀骇 - // id = this.formInline.pid; - // let pchildNodes = this.$refs.tree.getNode(this.newNode.id).parent - // .childNodes; - // orderNum = this.getMaxOrderNum(pchildNodes); - // lever = this.formInline.level; - // } else if (res == 2) { - // //鏂板瀛愮骇 - // id = this.formInline.id; - // let pchildNodes = this.$refs.tree.getNode(this.newNode.id).childNodes; - // orderNum = this.getMaxOrderNum(pchildNodes); - // lever = this.formInline.level + 1; - // } - // this.insertData.pid = id; - // this.insertData.level = lever; - // this.insertData.orderNum = orderNum; - - dialogVisible.value = true; -}; -//淇敼閲嶇疆 -const updateRest = () => { - var res = JSON.parse(backUpData.value); - formInline.value = res; - formInline.value.isLayer = res.isLayer.toString(); - - formInline.value.status = res.status.toString(); - // this.formInline.isProject = res.isProject.toString(); -}; -//涓嬫媺鑿滃崟鍒濆鍖� -const optionsStart = () => { - var std = []; - var ste = []; - for (var i in serve_type) { - ste.push({ - value: serve_type[i].value, - label: serve_type[i].name, - }); - } - serveType.value = std; - for (var i in data_type) { - std.push({ - value: data_type[i].value, - label: data_type[i].name, - children: data_type[i].children, - }); - } - dataType.value = ste; -}; -const setInsertDataTypeChange = (res) => { - var filter = serveType.value.filter((rs) => { - if (rs.value == res) { - return rs; - } - }); - if (filter.length <= 0) return; - var std = []; - var data = filter[0].children; - for (var i in data) { - for (var j in serve_type) { - if (serve_type[j].value == data[i]) { - std.push({ - value: serve_type[j].value, - label: serve_type[j].name, - }); - } - } - } - dataType.value = std; -}; -const setFromDataTypeClick = (res) => { - setInsertDataTypeChange(res); - formInline.value.type = dataType.value[0].value; -}; -const setServiceChange = (res) => { - if (res == "1") { - // this.setServiceRest() - } else { - serviceActive.value = false; - formInline.value.resid = 0; - } -}; const handleCheckChange = ( data: Tree, checked: boolean, @@ -396,35 +194,14 @@ // 澶勭悊鑺傜偣鐐瑰嚮浜嬩欢 function handleNodeClick(data: any) { console.log(data); - console.log(formInline.value); if (data.id === selectedNodeId.value) { // 濡傛灉褰撳墠鑺傜偣宸茬粡閫変腑锛屽垯鍙栨秷閫変腑 selectedNodeId.value = null; } else { // 鍚﹀垯閫変腑褰撳墠鑺傜偣 selectedNodeId.value = data.id; + form.selectName = data.cnName; selectedObj.value = data; - backUpData.value = JSON.stringify(data); - // this.currentData = JSON.stringify(result) - formInline.value = data; - formInline.value.isLayer = data.isLayer.toString(); - if (data.resid && data.resid > 0) { - serviceActive.value = true; - } else { - serviceActive.value = false; - } - var url; - if (!serviceActive.value) { - url = data.url; - } else if (serviceActive.value) { - var token = getToken(); - if (data.url.indexOf("{token}") > -1) { - url = BASE_URL + data.url.replaceAll("{token}", token); - } else { - url = data.url; - } - } - formInline.value.serviceUrl = url; } } //鏂板 @@ -435,17 +212,14 @@ } var addObj = { id: id, - cnName: formInline.value.name, - region: formInline.value.region, - url: formInline.value.layerUrl, + cnName: form.name, + region: form.region, + layerUrl: form.layerUrl, children: [], - type: 2, //鏁版嵁绫诲瀷 - proxy: null, - data: 0, - tab: "", //Geoserver 鍚嶇О锛� - category: "", //鏈嶅姟绫诲埆 Geoserver , + type: 2, + parentId: null, }; - if (formInline.value.region == "鐩綍") { + if (form.region == "鐩綍") { addObj.type = 1; } @@ -514,7 +288,6 @@ } emits("addlayer", { type: type, id: selectedObj.value.id }); }; -optionsStart(); </script> <style lang="less" scoped> @@ -570,8 +343,7 @@ width: 359px; height: 615px; background: rgba(7, 8, 14, 0.8); - // padding-bottom: 60px; - box-sizing: border-box; + .layerTitle { width: calc(100% - 27px); height: 42px; @@ -606,19 +378,6 @@ } .layerContent { padding: 0 8px; - height: 92%; - overflow: auto; - } - .layerContent::-webkit-scrollbar { - width: 8px; - } - .layerContent::-webkit-scrollbar-thumb { - border-radius: 10px; - background: rgba(0, 0, 0, 0.2); - } - .layerContent::-webkit-scrollbar-track { - border-radius: 0; - background: rgba(0, 0, 0, 0); } .contentBox { margin-top: 3px; @@ -714,7 +473,6 @@ } } } - .editBtn { width: 100%; display: flex; @@ -759,14 +517,5 @@ // } .highlight { background: rgba(104, 156, 255, 0.5) !important; -} -.serviceButton { - background: transparent !important; - color: #dcdfe6; -} -.serviceActive { - background: transparent !important; - color: #46a6ff; - border: 1px solid #46a6ff; } </style> -- Gitblit v1.9.3