jihongshun
7 天以前 cd1ecbca4881ba9d19858562f724aac3d152b901
src/utils/components/init-map.vue
@@ -45,7 +45,7 @@
      <div class="cesiumContent">
        <div class="flyAction">
          <div class="actionName">{{currentAction ?currentAction.type :'' }}</div>
          <i class="el-icon-delete" />
          <i class="el-icon-delete" @click="deleteAction(chooseItem)" />
        </div>
        <div class="flayDataAll">
          <div class="flyData">
@@ -198,7 +198,7 @@
let  pois = [globalon, globalat,0] 
let cameraVideo 
let ScopeElement; //光轴、视频
let preVideoScopePrimitiveArrTie = [];
// let preVideoScopePrimitiveArrTie = [];
let scratchSetViewMatrix3 = new Cesium.Matrix3();
let chooseId
// let  pois = [0, 0,0] 
@@ -269,7 +269,8 @@
        newTakeVideo: '',  // 编辑时的新数据
        isEditingVideo: false,  // 控制是否处于编辑状态
        actionCounter:0,
        currentAction:null
        currentAction:null,
        preVideoScopePrimitiveArrTie:[]
    }
  },
  mounted(){
@@ -941,6 +942,7 @@
        }
      })
      const result = Object.keys(grouped).map((key, idx) => {
        console.log(group)
        const group = grouped[key];
        const positionGround = group.groundPoiId.getValue(Cesium.JulianDate.now())
        const positionAerialPo = group.aerialPoiId.getValue(Cesium.JulianDate.now())
@@ -1063,8 +1065,8 @@
        pmObj.name = data.name;
        pmObj.primitive = cameraVideo;
        viewerM.scene.primitives.add(cameraVideo);
        preVideoScopePrimitiveArrTie.push(pmObj);
        preVideoScopePrimitiveArrTie.map((item)=>{
        this.preVideoScopePrimitiveArrTie.push(pmObj);
        this.preVideoScopePrimitiveArrTie.map((item)=>{
          if(item.id != chooseId){
            item.primitive.show = false
          }
@@ -1157,7 +1159,7 @@
      document.getElementById('cammoveResultCon').innerHTML = camResult;
      // 计算距离(单位:米)
      const distanceBetween = Cesium.Cartesian3.distance(point1, point2)
      preVideoScopePrimitiveArrTie.map((item)=>{
      this.preVideoScopePrimitiveArrTie.map((item)=>{
        if(item.id == chooseId){
          let obj = this.updateSZScope(Cesium.Math.toDegrees(position.longitude),Cesium.Math.toDegrees(position.latitude),position.height,heading,pitch,roll,this.zoomRatio,distanceBetween)
          item.primitive.inverseViewMatrix = obj.M
@@ -1241,18 +1243,19 @@
    DealVisualCone(data,node){
      this.rowData = data
      console.log(data)
      this.pointGround = {
      console.log(this.preVideoScopePrimitiveArrTie)
      this.pointFly = {
        lon:data.children[0].longitude,
        lat:data.children[0].latitude,
        height:data.children[0].height
      }
      this.pointFly = {
      this.pointGround = {
        lon:data.longitude,
        lat:data.latitude,
        height:data.height
      }
      if(data.children && data.children?.length > 0) {
        preVideoScopePrimitiveArrTie.map((item)=>{
        this.preVideoScopePrimitiveArrTie.map((item)=>{
          if(item.name != data.children[0].label){
            item.primitive.show = false
          }else{
@@ -1260,7 +1263,7 @@
          }
        })
      }else {
        preVideoScopePrimitiveArrTie.map((item)=>{
        this.preVideoScopePrimitiveArrTie.map((item)=>{
          if(item.name != data.label){
            item.primitive.show = false
          }else {
@@ -1283,6 +1286,20 @@
      }else if(action.type == '结束录像'){
      }
    },
    deleteAction(item){
      console.log(item.children[0].actions)
      if(!this.currentAction) return;
      console.log(this.currentAction)
      const point = this.currentAction.point;
      // 从 point.actions 中删除
      const index = item.children[0].actions.findIndex(a => a.id === this.currentAction.id);
      if(index !== -1){
        item.children[0].actions.splice(index, 1);
      }
      this.$message.success("已删除操作");
      this.currentAction = null;
    },
    changeTime(val) {
      this.time += val;
      if (this.time < 0) this.time = 0; // 最小值限制
@@ -1303,25 +1320,36 @@
      this.takePhoto = this.newTakePhoto;  // 点击对号时,更新数据
      this.isEditingPhoto = false;  // 结束编辑
      this.currentAction.extra.value = this.newTakePhoto
      window.addEventListener("keydown", this.onKeyDown);
      window.addEventListener("keyup", this.onKeyUp);
    },
    cancelEditing() {
      this.newTakePhoto = this.takePhoto;  // 点击取消时,恢复原数据
      this.isEditingPhoto = false;  // 结束编辑
      window.addEventListener("keydown", this.onKeyDown);
      window.addEventListener("keyup", this.onKeyUp);
    },
    startEditingVideo() {
      this.newTakeVideo = this.takeVideo;  // 进入编辑时,保存当前的值
      this.isEditingVideo = true;
      window.removeEventListener("keydown", this.onKeyDown);
      window.removeEventListener("keyup", this.onKeyUp);
    },
    validateVideoInput() {
      this.takeVideo = this.newTakeVideo;  // 点击对号时,更新数据
      this.isEditingVideo = false;  // 结束编辑
      this.currentAction.extra.value = this.newTakeVideo
      window.addEventListener("keydown", this.onKeyDown);
      window.addEventListener("keyup", this.onKeyUp);
    },
    cancelVideoEditing() {
      this.newTakeVideo = this.takeVideo;  // 点击取消时,恢复原数据
      this.isEditingVideo = false;  // 结束编辑
      window.addEventListener("keydown", this.onKeyDown);
      window.addEventListener("keyup", this.onKeyUp);
    },
    doAction(point, type){
      console.log(point)
      this.actionCounter++;
      let action = { 
        id: this.actionCounter, 
@@ -1338,7 +1366,7 @@
          action.extra.value = 'stopVideo'
      }
      console.log(action)
      point.actions.push(action);
      point.children[0].actions.push(action);
      console.log(point)
      this.$emit('dealAction',point)
      this.time = 10