wangjuncheng
2025-04-20 1a452b6708a442915899d2ddf8288e28fd63bfbc
src/components/tools/LayerTree.vue
@@ -1,9 +1,7 @@
<template>
  <div class="layer-tree">
    <<<<<<< HEAD <el-tree ref="treeRef" style="max-width: 600px" show-checkbox node-key="label" :default-checked-keys="defaultSelectedKeys" @check-change="handleCheckChange" :data="treeData" />
    =======
    <el-tree ref="treeRef" style="max-width: 600px" show-checkbox node-key="label" :default-checked-keys="defaultSelectedKeys" @check-change="handleCheckChange" :data="treeData" />
    >>>>>>> f82eb01fe65e513fb43342db0e25cafa0e0d2db8
    <el-tree ref="treeRef" style="max-width: 600px" show-checkbox node-key="label"
      :default-checked-keys="defaultSelectedKeys" @check-change="handleCheckChange" :data="treeData" />
  </div>
</template>
@@ -41,7 +39,7 @@
        label: "综合监测设备信息",
      },
      {
        label: "孙胡沟仿真标注地物",
        label: "孙胡沟断面",
      },
      {
        label: "避险点",
@@ -52,7 +50,7 @@
const treeRef = ref(null);
const treeMap = new Map();
const defaultSelectedKeys = ref(["模型数据", "影像数据", "地形数据"]);
function handleCheckChange (data, checked, indeterminate) {
function handleCheckChange(data, checked, indeterminate) {
  const label = data.label;
  const list = treeMap.get(label);
  if (list) {
@@ -75,15 +73,15 @@
    case "综合监测设备信息":
      console.log("综合监测设备信息", checked, indeterminate);
      break;
    case "孙胡沟仿真标注地物":
      console.log("孙胡沟仿真标注地物", checked, indeterminate);
    case "孙胡沟断面":
      console.log("孙胡沟断面", checked, indeterminate);
      break;
    case "避险点":
      addTetrahedron();
      break;
  }
}
function initMap () {
function initMap() {
  // let modelPromise = addTileset(
  //    `http://106.120.22.26:9103/gisserver/c3dserver/sunhugou3d/tileset.json`
  // )
@@ -94,10 +92,17 @@
  //    sourceType: "tms",
  //    url: "http://106.120.22.26:9103/gisserver/tmsserver/sunhugoudom",
  // })
  // let TerrainLayer = earthCtrl.factory.createTerrainLayer({
  //   sourceType: "ctb",
  //   // url: "http://106.120.22.26:9103/gisserver/ctsserver/llmbdem",
  //   url: "http://106.120.22.26:9103/gisserver/ctsserver/sunhugoudem",
  // })
  let TerrainLayer = earthCtrl.factory.createTerrainLayer({
    sourceType: "ctb",
    url: "http://106.120.22.26:9103/gisserver/ctsserver/llmbdem",
  })
    url: "http://106.120.22.26:9103/gisserver/ctsserver/sungugoudem",
  });
  // let TerrainLayer = earthCtrl.factory.createTerrainLayer({
  //   sourceType: "ctb",
  //   url: "https://tiles1.geovisearth.com/base/v1/terrain?token=486dac3bec56d7d7c2a581c150be2bd937462f1e8f3bc9c78b5658b396122405",
@@ -965,15 +970,15 @@
      divPoint.item.show = false;
      console.log(divPoint);
  divPointList.push(divPoint.item);
});
treeMap.set("孙胡沟仿真标注地物", list);
      divPointList.push(divPoint.item);
    });
    treeMap.set("孙胡沟断面", list);
  });
}
function addTetrahedron(visible) {
  const emergencyAreaList = [];
  //  这里是添加避险点底层面片
  loadAreaPolygon("/json/emergency_area.geojson", true).then((entities) => {
    emergencyAreaList.push(...entities);
  });
@@ -986,29 +991,26 @@
      latitude: 40.568391,
      altitude: 528.45,
    },
    {
      name: "范振江家",
      longitude: 116.591059,
      latitude: 40.574068,
      altitude: 528,
    },
    {
      name: "后坡",
      longitude: 116.597975,
      latitude: 40.558199,
      altitude: 528,
    },
    // {
    //   name: "范振江家",
    //   longitude: 116.591059,
    //   latitude: 40.574068,
    //   altitude: 528,
    // },
    // {
    //   name: "后坡",
    //   longitude: 116.597975,
    //   latitude: 40.558199,
    //   altitude: 528,
    // },
  ];
  // 这里是添加避险点富文本高亮显示
  list.forEach((item) => {
    let point = earthCtrl.factory.addTetrahedron({
      position: {
        lon: item.longitude,
        lat: item.latitude,
        height: item.altitude,
      },
      multiple: 1.0,
      scale: new SmartEarth.Cesium.Cartesian3(20, 20, 20),
    });
    let point = earthCtrl.factory.createRichTextPoint("避险点", [item.longitude, item.latitude, item.altitude - 10], {
      distanceDisplayCondition: new SmartEarth.Cesium.DistanceDisplayCondition(0, 2000),
      fontColor: "#ffffff",
      fontSize: 20
    }, "0");
    console.log("point", point);
    emergencyAreaList.push(point);
  });
@@ -1051,7 +1053,7 @@
      treeRef.value.setCheckedKeys(defaultKeys.concat("孙胡沟隐患点"), true);
      toggleLayerVisible("孙胡沟隐患点", true);
      toggleLayerVisible("综合监测设备信息", false);
      toggleLayerVisible("孙胡沟仿真标注地物", false);
      toggleLayerVisible("孙胡沟断面", false);
    } else if (path == "/zhjc") {
      treeRef.value.setCheckedKeys(
        defaultKeys.concat("综合监测设备信息"),
@@ -1059,13 +1061,13 @@
      );
      toggleLayerVisible("综合监测设备信息", true);
      toggleLayerVisible("孙胡沟隐患点", false);
      toggleLayerVisible("孙胡沟仿真标注地物", false);
      toggleLayerVisible("孙胡沟断面", false);
    } else if (path == "/mnfz") {
      treeRef.value.setCheckedKeys(
        defaultKeys.concat("孙胡沟仿真标注地物"),
        true
        defaultKeys.concat("孙胡沟断面"),
        false
      );
      toggleLayerVisible("孙胡沟仿真标注地物", true);
      toggleLayerVisible("孙胡沟断面", false);
      toggleLayerVisible("孙胡沟隐患点", false);
      toggleLayerVisible("综合监测设备信息", false);
    } else {