管道基础大数据平台系统开发-【前端】-新系統界面
1
13693261870
2023-05-23 d690c11330cff652773685b552376289b8574668
1
已修改1个文件
226 ■■■■■ 文件已修改
src/views/Tools/LayerTree.vue 226 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Tools/LayerTree.vue
@@ -253,7 +253,7 @@
    },
    // 定位
    async positioning () {
      this.menuVisible = false;
      this.rmListener();
      if (["Tileset", "3DML"].indexOf(this.currentData.serveType) > -1) {
        for (var i in Viewer.scene.primitives._primitives) {
          if (Viewer.scene.primitives._primitives[i].id == this.currentData.cnName) {
@@ -264,7 +264,7 @@
        return;
      }
      if (["TMS", "DEM"].indexOf(this.currentData.serveType) > -1 && this.currentData.pubid) {
      if (["TMS", "DOM", "DEM"].indexOf(this.currentData.serveType) > -1 && this.currentData.pubid) {
        var data = await comprehensive_selectPubById({ id: this.currentData.pubid });
        if (data.result && data.result.geom) {
          var wkt = this.$wkt.parse(data.result.geom);
@@ -282,7 +282,7 @@
    },
    // 钻孔柱状图
    async histogram () {
      this.menuVisible = false
      this.rmListener();
      var layer = this.currentData.enName.replaceAll("_", "");
      this.$store.state.mapSpaceQueryLayer = layer;
      this.$store.state.mapPopBoxFlag = "2";
@@ -305,110 +305,115 @@
      return this.levelArray[this.levelArray.length - 1];
    },
    handleCheckChange (data, checked, indeterminate) {
      if (data.type == 1) {
        this.childOption = [];
        this.getchilds(data);
        var listWMS = [];
        var listWFS = [];
        var listTileset = [];
        var listTMS = [];
        var listMpt = [];
        for (var i in this.childOption) {
          switch (this.childOption[i].serveType) {
            case 'WMS':
              listWMS.push(this.childOption[i])
              break;
            case 'WFS':
              listWFS.push(this.childOption[i])
              break;
            case '3DML':
              listTileset.push(this.childOption[i])
              break;
            case 'Tileset':
              listTileset.push(this.childOption[i])
              break;
            case 'Mpt':
              listMpt.push(this.childOption[i])
              break;
            case 'TMS':
              listTMS.push(this.childOption[i])
              break;
          }
        }
        this.setChangeWMS(listWMS, checked);
        this.setChangeWFS(listWFS, checked);
        this.setChangeTileset(listTileset, checked);
        this.setChangeTMS(listTMS, checked);
        this.setChangeMpt(listMpt, checked);
      } else if (data.type == 2) {
        if (data.serveType == "WMS") {
          this.setChangeWMS([data], checked);
        } else if (data.serveType == "Tileset" || data.serveType == "3DML") {
          this.setChangeTileset([data], checked);
        } else if (data.serveType == "TMS") {
          this.setChangeTMS([data], checked);
        } else if (data.serveType == "Mpt") {
          this.setChangeMpt([data], checked);
    // 图层选中事件
    handleCheckChange (data, checked) {
      let nodes = [];
      this.getNodes(data, nodes);
      let obj = { WMS: [], Tileset: [], TMS: [], Mpt: [], DEM: [] };
      for (let i = 0, c = nodes.length; i < c; i++) {
        let node = nodes[i];
        switch (node.serveType) {
          case "WMS":
            obj.WMS.push(node);
            break;
          case "3DML":
          case "Tileset":
            obj.Tileset.push(node);
            break;
          case "TMS":
            obj.TMS.push(node);
            break;
          case "Mpt":
            obj.Mpt.push(node);
            break;
          case "DEM":
            obj.DEM.push(node);
            break;
        }
      }
      if (obj.WMS.length) this.setChangeWMS(obj.WMS, checked);
      if (obj.Tileset.length) this.setChangeTileset(obj.Tileset, checked);
      if (obj.TMS.length) this.setChangeTMS(obj.TMS, checked);
      if (obj.Mpt.length) this.setChangeMpt(obj.Mpt, checked);
      if (obj.DEM.length) this.setChangeDEM(obj.DEM, checked);
    },
    setChangeWMS (result, checked) {
    // 获取子节点
    getNodes (data, arr) {
      if (data.children) {
        for (let i = 0, c = data.children.length; i < c; i++) {
          var node = data.children[i];
          if (node.children) {
            this.getNodes(node, arr)
          } else {
            arr.push(node);
          }
        }
      } else {
        arr.push(data);
      }
    },
    // 切换WMS服务
    setChangeWMS (layers, checked) {
      var value = this.$refs.tree.getCheckedNodes();
      this.$bus.$emit("showMenuLayer", value);
    },
    setChangeWFS (result, checked) {
      var value = this.$refs.tree.getCheckedNodes();
      var std = [];
      for (var i in value) {
        std.push(value[i].id)
      }
      for (var i in result) {
        var tile = result[i]
        if (std.indexOf(tile.id) != -1) {
          this.setAddLayers(tile)
        } else {
          for (var i in window.Viewer.dataSources._dataSources) {
            if (window.Viewer.dataSources._dataSources[i].name == tile.cnName) {
              window.Viewer.dataSources.remove(window.Viewer.dataSources._dataSources[i]);
            }
          }
    // 切换Tileset
    setChangeTileset (layers, checked) {
      let ids = this.getCheckNodesIds();
      for (var i in layers) {
        var layer = layers[i];
        if (ids.indexOf(layer.id) != -1) {
          this.setAddLayers(layer);
          continue;
        }
          var layers_ol = window.map.getAllLayers();
          for (var i in layers_ol) {
            var layerOl = layers_ol[i];
            if (layerOl.values_.name == tile.cnName) {
              window.map.removeLayer(layerOl)
            }
        for (var j in Viewer.scene.primitives._primitives) {
          if (Viewer.scene.primitives._primitives[j].id == layer.cnName) {
            Viewer.scene.primitives.remove(Viewer.scene.primitives._primitives[j]);
            break;
          }
        }
        var list = this.$store.state.setAlphaList;
        for (var i = 0; i < list.length; i++) {
          if (list[i].name == layer.cnName) {
            list.splice(i, 1);
          }
        }
      }
    },
    setChangeTileset (result, checked) {
      var value = this.$refs.tree.getCheckedNodes();
      var std = [];
      for (var i in value) {
        std.push(value[i].id)
    // 获取节点ID
    getCheckNodesIds () {
      var nodes = this.$refs.tree.getCheckedNodes();
      var ids = [];
      for (var i in nodes) {
        ids.push(nodes[i].id);
      }
      for (var i in result) {
        var tile = result[i]
        if (std.indexOf(tile.id) != -1) {
          this.setAddLayers(tile)
        } else {
          for (var j in Viewer.scene.primitives._primitives) {
            if (Viewer.scene.primitives._primitives[j].id == tile.cnName) {
              Viewer.scene.primitives.remove(Viewer.scene.primitives._primitives[j])
            }
          }
          var list = this.$store.state.setAlphaList;
          for (var i = 0; i < list.length; i++) {
            if (list[i].name == tile.cnName) {
              list.splice(i, 1)
            }
      return ids;
    },
    // 切换TMS
    setChangeTMS (layers, checked) {
      let ids = this.getCheckNodesIds();
      for (var i in layers) {
        var layer = layers[i];
        if (ids.indexOf(layer.id) != -1) {
          this.setAddLayers(layer);
          continue;
        }
        for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
          if (window.Viewer.imageryLayers._layers[i].name == layer.cnName) {
            window.Viewer.imageryLayers.remove(window.Viewer.imageryLayers._layers[i]);
            break;
          }
        }
      }
    },
    // 切换Mpt
    setChangeMpt (result, checked) {
      var value = this.$refs.tree.getCheckedNodes();
      var std = [];
@@ -430,42 +435,9 @@
        }
      }
    },
    setChangeTMS (result, checked) {
      var value = this.$refs.tree.getCheckedNodes();
      var std = [];
      for (var i in value) {
        std.push(value[i].id)
      }
      for (var i in result) {
        var tile = result[i]
        if (std.indexOf(tile.id) != -1) {
          this.setAddLayers(tile)
        } else {
          for (var i = 0; i < window.Viewer.imageryLayers._layers.length; i++) {
            var val_id = window.Viewer.imageryLayers._layers[i].name;
            if (val_id == tile.cnName) {
              window.Viewer.imageryLayers.remove(
                window.Viewer.imageryLayers._layers[i]
              );
            }
          }
        }
      }
    },
    getchilds (source) {
      if (source.children) {
        var child = source.children
        for (var i in child) {
          if (child[i].children) {
            this.getchilds(child[i])
          } else {
            this.childOption.push(child[i])
          }
        }
      } else {
        this.childOption.push(source)
      }
    // 切换DEM
    setChangeDEM () {
      //
    },
    async setAddLayers (res) {
      if (res.serveType == "WMS") {