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、DEM // 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 '父ID: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-代理图层'; // 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 '代理地址'; // 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 '创建人ID'; // comment on column lf.sys_res.create_time is '创建时间'; // comment on column lf.sys_res.update_user is '更新人ID'; // comment on column lf.sys_res.update_time is '更新时间'; // comment on column lf.sys_res.bak is '备注'; // 代理:/proxy/{token}/4 // 地址:http://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) { } else { console.log(treeNode) } 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 } }) } if (service.length > 0) return var url = null; if (treeNode.useUrl && treeNode.useUrl.indexOf('{token}') > -1) { const token = getToken() url = config.BASE_URL + treeNode.proxy.replaceAll("{token}", token) } else { url = treeNode.useUrl } 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: 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: "", }, 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;