+
liuyg
2022-01-20 eb6be7e76f6d12ebbc5a552a6fe67e9a79758cb4
src/store/modules/mobile.js
@@ -46,6 +46,12 @@
    tilesetLayer: null, //2.5d模型
    usetowpointfive: null,
    tilesetLayer: null, //瀑布流
    areaLayer: null, //2.5d事件--绿色图层
    select: {
      //绿色图层控制显示
      overlay: undefined,
      color: undefined,
    },
    vecLayer: null, //3D底图
    cvaLayer: null, //3D底图
@@ -56,6 +62,7 @@
    navigationStartLngLat: "", //导航起点
    navigationEndLngLat: "", //导航终点
    drawALineLayer: null, //导航路径图层
    drawALineLayerIcon: null, //导航路径图层图标
    isOpenDrawALine: false, //是否开启路径
    endPosition: "", //传送终点经纬度--
    isendPosition: false, //传送终点经纬度--感应数据
@@ -176,6 +183,7 @@
        state.tilesetLayer.show = true; //显示3d图形
        state.startPointFn(); //移动默认视角
        // state.mviewer.flyTo(state.tileset);
        state.areaLayer.show = false; //绿布
        //3D视角不限制
        state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 80;
@@ -207,7 +215,7 @@
        state.newLayer = state.usetowpointfive(); //添加2.5d图形贴片
        state.wallLayer.show = false; //打开瀑布
        state.startPointFn(); //移动默认视角
        state.areaLayer.show = true; //绿布
        //2.5D视角限制
        state.mviewer.scene.screenSpaceCameraController.minimumZoomDistance = 0;
        // 最大
@@ -223,6 +231,10 @@
        // 视角旋转
        state.mviewer.scene.screenSpaceCameraController.enableTilt = false;
      }
    },
    //绿布
    MSET_areaLayer(state, data) {
      state.areaLayer = data;
    },
    //切换控制
    MSET_PERSPECTIVECONTROL(state, data) {
@@ -270,6 +282,12 @@
        state.isOpenDrawALine = false;
      }
    },
    removerPolyLineIcon(state) {
      if (state.drawALineLayerIcon) {
        state.drawALineLayerIcon.remove();
        state.drawALineLayerIcon = null;
      }
    },
    removePolylineMany(state) {
      if (state.drawALineLayerMany) {
        state.drawALineLayerMany.remove();
@@ -289,6 +307,10 @@
    //活动窗口是否显示
    set_showActivity(state, data) {
      state.showActivity = data;
    },
    mset_changeSelect(state, data) {
      state.select.overlay = data[0];
      state.select.color = data[1];
    },
  },
  actions: {
@@ -744,45 +766,53 @@
        color: color,
        speed: 10,
      });
      let drawALineLayer = new global.DC.VectorLayer("layer");
      state.mviewer.addLayer(drawALineLayer);
      let polyline = new global.DC.Polyline(Str); //加入绘画点
      state.drawALineLayer = new global.DC.VectorLayer("lineLayer");
      state.mviewer.addLayer(state.drawALineLayer);
      //如果是添加  给第一个点加入图标 和事件
      if (value[1]) {
        commit("removerPolyLineIcon");
        state.drawALineLayerIcon = new global.DC.VectorLayer("pointLayer");
        state.mviewer.addLayer(state.drawALineLayerIcon);
        let post = Str.split(";")[0].split(",");
        let position = new global.DC.Position(post[0], post[1]);
        let billboard = new global.DC.Billboard(
          position,
          "img/dingwei/dingwei1.png"
        ); //加入绘画点
        billboard.setStyle({
          pixelOffset: { x: 0, y: -17 }, //偏移像素
        });
        //订阅事件
        billboard.on(global.DC.MouseEventType.CLICK, (e) => {
          // console.log(e);
          // return;
          // 定制化窗体
          let position = e.position,
            lntLat = [e.overlay._position._lng, e.overlay._position._lat];
          let windowData = {
            position,
            lntLat,
            query: {
              ...(value[1] || {}),
              position,
              lntLat,
              notAddGoOn: "notAddGoOn",
            },
            useJWD: true, //仅使用经纬度
          };
          dispatch("setMobileWindows", windowData);
        });
        state.drawALineLayerIcon.addOverlay(billboard);
      }
      let polyline = new global.DC.Polyline(Str); //加入线
      polyline.setStyle({
        width: 3,
        material: material,
        clampToGround: true,
      });
      drawALineLayer.addOverlay(polyline);
      //如果是添加  给第一个点加入图标 和事件
      // if (value[1]) {
      //   let post = Str.split(";")[0].split(",");
      //   let position = new global.DC.Position(post[0], post[1]);
      //   let billboard = new global.DC.Billboard(
      //     position,
      //     "img/dingwei/dingwei4.png"
      //   ); //加入绘画点
      //   billboard.setStyle({
      //     pixelOffset: { x: 0, y: -17 }, //偏移像素
      //   });
      //   //订阅事件
      //   billboard.on(global.DC.MouseEventType.CLICK, (e) => {
      //     // console.log(e);
      //     // return;
      //     // 定制化窗体
      //     let position = e.position,
      //       lntLat = [e.overlay._position._lng, e.overlay._position._lat];
      //     let windowData = {
      //       position,
      //       lntLat,
      //       query: { ...(value[1] || {}), position, lntLat },
      //       useJWD: true, //仅使用经纬度
      //     };
      //     dispatch("setMobileWindows", windowData);
      //   });
      //   drawALineLayer.addOverlay(billboard);
      // }
      state.drawALineLayer.addOverlay(polyline);
      state.drawALineLayer = drawALineLayer;
      state.isOpenDrawALine = true;
      // commit("cameraSetView", state.navigationStartLngLat); //移动
    },
@@ -791,6 +821,7 @@
      //检查是否存在路线
      commit("removePolylineMany");
      commit("removePolyline");
      commit("removerPolyLineIcon");
      let Strs = value[0];
      let red = global.DC.Namespace.Cesium.Color.fromCssColorString("#FF0000");
      let white = global.DC.Namespace.Cesium.Color.fromCssColorString("#fff");
@@ -805,7 +836,7 @@
        image: "img/icon/right.png",
        repeat: { x: 320, y: 1 },
      });
      let drawALineLayerMany = new global.DC.VectorLayer("layer");
      let drawALineLayerMany = new global.DC.VectorLayer("manyLinePointLayer");
      state.mviewer.addLayer(drawALineLayerMany);
      //多条线
      for (let k in Strs) {
@@ -853,7 +884,12 @@
          let windowData = {
            position,
            lntLat,
            query: { ...(value[2] || {}), position, lntLat },
            query: {
              ...(value[2] || {}),
              position,
              lntLat,
              notAddGoOn: "notAddGoOn",
            },
            useJWD: true, //仅使用经纬度
          };
          dispatch("setMobileWindows", windowData);