月球大数据地理空间分析展示平台-【前端】-月球2期前端
surprise
2023-11-27 b1e9c826c1ba48c3dc263039699636ed2ba3be4e
src/assets/js/Map/server.js
@@ -2,17 +2,20 @@
//配置文件地址
// import config from "../../../../public/config/config";
import store from "@/store";
import { nextTick } from "vue";
const server = {
  layerList: [],
  graticules: null,
  alpha: null,//透明度
  geoLayer: [],
  geoUrl: null,
  wmsLayerId: null,
  addTreeData(treeNode) {
    if (!treeNode.checked) {
      this.delLayer(treeNode.id);
      return;
    }
    // if (!treeNode.checked) {
    // this.delLayer(treeNode.id);
    // return;
    // }
    this.alpha = this.getResLayersAlpha(treeNode);
    //判断是否为代理
    if (treeNode.proxy) {
@@ -286,7 +289,7 @@
      return 1;
    } else {
      var id = std[0].id;
      var val= null;
      var val = null;
      var layers = window.Viewer.imageryLayers._layers;
      for (var i in layers) {
        if (layers[i].id == id) {
@@ -294,9 +297,9 @@
          return layers[i].alpha;
        }
      }
       if(!null){
      if (!null) {
        return 1
       }
      }
    }
  },
  //加载地形服务
@@ -315,9 +318,9 @@
  },
  //加载WMS服务
  setAddWmsLayer(res) {
    var url = this.getLayrUrl(res);
    var img_layer = sgworld.Creator.createImageryProvider(
      "giserver",
      "wms",
@@ -387,7 +390,7 @@
  //清除图层
  delLayer(code) {
    this.layerList.forEach((e, i) => {
      if (e.id === code) {
        switch (e.type) {
@@ -440,11 +443,11 @@
    }
  },
  //加载GeoServer-WMS服务
  setAddGeoWmsLayer(res) {
  this.delLayer(res.id)
  setAddGeoWmsLayer(res, alpha) {
    //
    var url = res.url;
    var that = this;
    this.delLayer(res.id)
    var getFeatureInfoFormat = new SmartEarth.Cesium.GetFeatureInfoFormat(
      "html",
      null,
@@ -458,12 +461,12 @@
    } else {
      url = url;
    }
    let layer = new SmartEarth.Cesium.WebMapServiceImageryProvider({
      url: url,
      layers: res.tab,
      id:res.id,
      getFeatureInfoParameters: { info_format: "text/html" },
      id: res.id,
      getFeatureInfoParameters: { info_format: "text/html", srs: "EPSG:104903" },
      enablePickFeatures: true,
      getFeatureInfoFormats: [getFeatureInfoFormat],
      parameters: {
@@ -475,19 +478,21 @@
      tileWidth: 512,
      tileHeight: 512,
    });
    layer.name = `Wms_Layer${res.id}`;
    let img_layer = window.Viewer.imageryLayers.addImageryProvider(layer);
    img_layer.name = `Wms_Layer${res.id}`;
    img_layer.id = res.id
    img_layer.alpha = this.alpha;
    img_layer.alpha = alpha ? alpha : 1;
    this.layerList.push({ id: res.id, layerData: img_layer, type: "wmts" });
  },
  addGeoServerMmsLayers(layer, url) {
    this.geoLayer = layer;
    this.geoUrl = url;
    var that = this;
    var getFeatureInfoFormat = new SmartEarth.Cesium.GetFeatureInfoFormat(
      "html",
      null,
      function (html) {
        that.getFeatureInfo(html);
      }
    );
@@ -497,10 +502,15 @@
    } else {
      url = url;
    }
    if (!this.wmsLayerId) {
      this.wmsLayerId = new Date();
    }
    let wmslayer = new SmartEarth.Cesium.WebMapServiceImageryProvider({
      url: url,
      id: this.wmsLayerId,
      layers: layer.toString(),
      getFeatureInfoParameters: { info_format: "text/html" },
      getFeatureInfoParameters: { info_format: "text/html", srs: "EPSG:104903" },
      enablePickFeatures: true,
      getFeatureInfoFormats: [getFeatureInfoFormat],
      parameters: {
@@ -512,13 +522,47 @@
      tileWidth: 512,
      tileHeight: 512,
    });
    wmslayer.name = `Wms_Layer_geo`;
    let img_layer = window.Viewer.imageryLayers.addImageryProvider(wmslayer);
    this.layerList.push({ id: res.id, layerData: img_layer, type: "wmts" });
  },
    let img_layer = window.Viewer.imageryLayers.addImageryProvider(wmslayer);
    img_layer.id = this.wmsLayerId;
    this.layerList.push({ id: this.wmsLayerId, layerData: img_layer, type: "wmts" });
  },
  getGeoLayerChangeAlpha(res) {
    var std = [];
    for (var i in this.geoLayer) {
      if (this.geoLayer[i] != res.tab) {
        std.push(this.geoLayer[i])
      }
    }
    this.geoLayer = [];
    this.geoLayer = std;
    var imageLayers = window.Viewer.imageryLayers._layers;
    for (var i in imageLayers) {
      if (imageLayers[i].id == this.wmsLayerId) {
        window.Viewer.imageryLayers.remove(imageLayers[i])
      }
    }
    for (var i in this.layerList) {
      if (this.layerList[i].id == this.wmsLayerId) {
        this.layerList.splice(i, 1)
      }
    }
    if (this.geoLayer.length > 0) {
      this.addGeoServerMmsLayers(this.geoLayer, this.geoUrl)
    }
    this.setAddGeoWmsLayer(res);
    for (var i in this.layerList) {
      if (this.layerList[i].id == res.id) {
        return {
          id: i,
          layer: this.layerList[i]
        };
        break;
      }
    }
  },
  getFeatureInfo(html) {
    var start =
      html.indexOf('<caption class="featureInfo">') +
      '<caption class="featureInfo">'.length;
@@ -539,7 +583,7 @@
        break;
      }
    }
    if (!gindex) return;
    var str = html
      .substr(