| | |
| | | import { getToken } from "@/utils/auth"; |
| | | //配置文件地址 |
| | | import config from "./config"; |
| | | |
| | | // import config from "../../../../public/config/config"; |
| | | import store from "@/store"; |
| | | const server = { |
| | | layerList: [], |
| | | addTreeData(treeNode) { |
| | |
| | | let img_layer = earthCtrl.Creator.createUrlTemplateImageryProvider( |
| | | "tms服务", |
| | | { |
| | | url: Cesium.buildModuleUrl(url + "/{z}/{x}/{y}.png"), |
| | | url: Cesium.buildModuleUrl(url + "/{z}/{x}/{reverseY}.png"), |
| | | }, |
| | | "0", |
| | | undefined, |
| | |
| | | var url = this.getLayrUrl(res); |
| | | window.terrainLayer = new Cesium.CesiumTerrainProvider({ |
| | | url: url, |
| | | tilingScheme: new Cesium.GeographicTilingScheme({ |
| | | ellipsoid: Cesium.Ellipsoid.MOON, |
| | | }), |
| | | |
| | | }); |
| | | Viewer.terrainProvider = window.terrainLayer; |
| | | Viewer.scene.globe.terrainExaggeration = 1.0000001; |
| | | this.layerList.push({ id: res.id, type: "dem" }); |
| | | }, |
| | | //加载WMS服务 |
| | |
| | | tileset.readyPromise.then((tileset) => { |
| | | tileset.id = res.id; |
| | | }); |
| | | this.layerList.push({ id: res.id, layerData: tileset, type: "tileset" }); |
| | | }, |
| | | //地形移除事件 |
| | | setChangeTearrinLayer() { |
| | |
| | | {} |
| | | ); |
| | | break; |
| | | case "": |
| | | case "tileset": |
| | | window.Viewer.scene.primitives.remove(e.layerData) |
| | | break; |
| | | } |
| | | this.layerList.splice(i, 1); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | delLayerAll() { |
| | | this.layerList.forEach((e, i) => { |
| | | switch (e.type) { |
| | | case "wmts": |
| | | 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 "tileset": |
| | | window.Viewer.scene.primitives.remove(e.layerData) |
| | | break; |
| | | } |
| | | this.layerList.splice(i, 1); |
| | | }); |
| | | |
| | | }, |
| | | //加载GeoServer-WMS服务 |
| | | setAddGeoWmsLayer(res) { |
| | | var url = this.getLayrUrl(res); |
| | | var that = this |
| | | var getFeatureInfoFormat = new SmartEarth.Cesium.GetFeatureInfoFormat("html", null, function (html) { |
| | | that.getFeatureInfo(html) |
| | | }); |
| | | let layer = new SmartEarth.Cesium.WebMapServiceImageryProvider({ |
| | | url: url, |
| | | layers: res.tab, |
| | | getFeatureInfoParameters: { info_format: 'text/html' }, |
| | | enablePickFeatures: true, |
| | | getFeatureInfoFormats: [getFeatureInfoFormat], |
| | | parameters: { |
| | | transparent: true, |
| | | format: "image/png", |
| | |
| | | let img_layer = window.Viewer.imageryLayers.addImageryProvider(layer); |
| | | this.layerList.push({ id: res.id, layerData: img_layer, type: "wmts" }); |
| | | }, |
| | | addGeoServerMmsLayers(layer, url) { |
| | | var that = this |
| | | var getFeatureInfoFormat = new SmartEarth.Cesium.GetFeatureInfoFormat("html", null, function (html) { |
| | | that.getFeatureInfo(html) |
| | | }); |
| | | let wmslayer = new SmartEarth.Cesium.WebMapServiceImageryProvider({ |
| | | url: url, |
| | | layers: layer.toString(), |
| | | getFeatureInfoParameters: { info_format: 'text/html' }, |
| | | enablePickFeatures: true, |
| | | getFeatureInfoFormats: [getFeatureInfoFormat], |
| | | parameters: { |
| | | transparent: true, |
| | | format: "image/png", |
| | | srs: "EPSG:104903", |
| | | styles: "", |
| | | }, |
| | | tileWidth: 512, |
| | | tileHeight: 512, |
| | | }); |
| | | wmslayer.name = `Wms_Layer_geo`; |
| | | let img_layer = window.Viewer.imageryLayers.addImageryProvider(wmslayer); |
| | | this.layerList.push({ id: 1001011, layerData: img_layer, type: "wmts" }); |
| | | }, |
| | | |
| | | |
| | | getFeatureInfo(html) { |
| | | store.state.details.showDetails = false; |
| | | var start = html.indexOf("<caption class=\"featureInfo\">") + "<caption class=\"featureInfo\">".length; |
| | | var end = html.indexOf("</caption>"); |
| | | var tab = html.substr(start, end - start); |
| | | var std = html.substr(html.indexOf('<th>'), html.lastIndexOf('</th>') - html.indexOf('<th>') + 5).replaceAll(' ', '').replaceAll('\n', '').split('</th>') |
| | | var gindex = null; |
| | | for (var i = 0; i < std.length; i++) { |
| | | if (std[i].indexOf('gid') > -1) { |
| | | gindex = i; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (!gindex) return |
| | | var str = html.substr(html.indexOf('<td>'), html.lastIndexOf('</td>') - html.indexOf('<td>') + 5).replaceAll(' ', '').replaceAll('\n', '').split('</td>') |
| | | var gid = parseInt(str[gindex].replaceAll( |
| | | '<td>', '' |
| | | )) |
| | | if (gid && tab) { |
| | | |
| | | store.state.details = { |
| | | gid: gid, |
| | | tab: tab, |
| | | showDetails: true |
| | | } |
| | | } |
| | | |
| | | }, |
| | | }; |
| | | export default server; |