Browse Source

修改压平版本

lkk 1 năm trước cách đây
mục cha
commit
a01874f074

+ 115 - 16
src/components/3DAnalysis/Smashing/Smashing.vue

@@ -1,11 +1,12 @@
 <template>
   <div v-show="smashingComb">
-    <div class="sm-function-module-content">
+    <div>
       <!-- <div class="sm-point media-hidden"></div>
       <label class="sm-function-module-sub-section-setting media-hidden">{{
         Resource.ObserverInformation
       }}</label> -->
 
+
       <div class="boxchild">
         <el-button type="primary" size="mini" @click="createSmashing"
           >倾斜压平</el-button
@@ -14,11 +15,21 @@
           Resource.clear
         }}</el-button>
       </div>
+      <el-select v-model="value" placeholder="请选择对象">
+        <el-option
+          v-for="(item, index) in options"
+          :key="index"
+          :label="item.name"
+          :value="item"
+          @click.native="test(item)"
+        >
+        </el-option>
+      </el-select>
     </div>
   </div>
 </template>
-  
-  <script>
+
+<script>
 let cutFillAnalysis = null;
 
 export default {
@@ -34,6 +45,12 @@ export default {
       ),
       //存储压平数据名称
       flattenNames: [],
+      handlerTemp: new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas),
+      options: [],
+      value: "",
+      // primitive:undefined
+      testLay: undefined,
+      nameStr: "",
     };
   },
   computed: {
@@ -45,13 +62,51 @@ export default {
     },
   },
   beforeDestroy() {},
-  mounted() {},
+  mounted() {
+    store.state.S3MList.forEach((s) => {
+      s.forEach((i) => {
+        this.options.push(i);
+      });
+    });
+    // console.log(this.options, "this.options");
+  },
   methods: {
+    test(val) {
+      // console.log("woshi", val);
+      this.testLay = val;
+      this.value = val.name;
+      viewer.flyTo(val);
+    },
     createSmashing() {
+      // console.log(
+      //   store.state.modellayerlist,
+      //   "////",
+      //   store.state.S3MList,
+      //   "---",
+      //   store.state.tempLatData
+      // );
       //绘制多边形
       const that = this;
-      that.handler_Cut_fill.clear();
-      viewer.scene.globe.removeAllExcavationRegion();
+
+      that.clear();
+      // let handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
+      // handler.setInputAction((event) => {
+      //   var pickObj = viewer.scene.pick(event.position);
+      //   var position = viewer.scene.pickPosition(event.position);
+      //   var cartographic = Cesium.Cartographic.fromCartesian(position);
+      //   console.log(event, "event", pickObj,position);
+      //   if (!position) {
+      //     position = Cesium.Cartesian3.fromDegrees(0, 0, 0);
+      //   }
+      // }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+
+      if (that.handler_Cut_fill == null) {
+        that.handler_Cut_fill = new Cesium.DrawHandler(
+          viewer,
+          Cesium.DrawMode.Polygon,
+          0
+        );
+      }
 
       that.handler_Cut_fill.activeEvt.addEventListener(function (isActive) {
         if (isActive == true) {
@@ -107,15 +162,48 @@ export default {
           }
         }
         viewer.scene.globe.removeAllExcavationRegion();
+        // //调用压平api进行压平
+        // store.state.tempLatData[0].forEach((el) => {
+        //   //获取时间戳
+        //   var date = new Date().getTime();
+        //   // that.flattenNames.push(date);
+        //   store.state.flattenNames.push(date);
+        //   //调用压平api进行压平
+        //   el.addFlattenRegion({
+        //     position: positions,
+        //     // name: "flatten" + Math.random(),
+        //     name: "flatten" + date,
+        //   });
+        // });
+
+        // store.state.S3MList.forEach((s) => {
+        //   //调用压平api进行压平
+        //   s.forEach((el) => {
+        //     //获取时间戳
+        //     var date = new Date().getTime();
+        //     // that.flattenNames.push(date);
+        //     store.state.flattenNames.push(date);
+        //     //调用压平api进行压平
+        //     el.addFlattenRegion({
+        //       position: positions,
+        //       // name: "flatten" + Math.random(),
+        //       name: "flatten" + date,
+        //     });
+        //   });
+        // });
+
         //获取时间戳
         var date = new Date().getTime();
         // that.flattenNames.push(date);
+        that.nameStr = date;
         store.state.flattenNames.push(date);
         //调用压平api进行压平
-        store.state.tempLatData.addFlattenRegion({
+        // store.state.tempLatData.addFlattenRegion({
+        // console.log(that.testLay, "this.testLay222");
+        that.testLay.addFlattenRegion({
           position: positions,
           // name: "flatten" + Math.random(),
-          name: "flatten" + date,
+          name: "flatten" + that.nameStr,
         });
         that.handler_Cut_fill.polygon.show = false;
         that.handler_Cut_fill.polyline.show = false;
@@ -124,17 +212,28 @@ export default {
       that.handler_Cut_fill.activate();
     },
     clear() {
-      if (store.state.flattenNames.length) {
-        store.state.flattenNames.forEach((el) => {
-          store.state.tempLatData.removeFlattenRegion("flatten" + el);
-        });
+      const that = this;
+      if (that.handler_Cut_fill != null) {
+        that.handler_Cut_fill.clear();
+        viewer.scene.globe.removeAllExcavationRegion();
+        that.handler_Cut_fill.deactivate();
+        that.handler_Cut_fill = null;
+        that.value = "";
       }
+      if (that.nameStr != "") {
+        that.testLay.removeFlattenRegion("flatten" + that.nameStr);
+        store.state.flattenNames = [];
+      }
+      // if (store.state.flattenNames.length) {
+      //   store.state.flattenNames.forEach((el) => {
+      //     that.testLay.removeFlattenRegion("flatten" + el);
+      //   });
+      //   store.state.flattenNames = [];
+      // }
     },
   },
   watch: {},
 };
 </script>
-  
-  <style lang="scss" scoped>
-</style>
-  
+
+<style lang="scss" scoped></style>

+ 7 - 2
src/components/Combinations/LayerManage/LayerManage.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="sm-panel" v-if="LayerManageShow">
+  <div class="sm-panel" v-show="LayerManageShow">
     <div class="sm-panel-header">
       <span>{{ Resource.LayerManage }}</span>
       <span class="closeBtn" @click="toggleVisibility">&times;</span>
@@ -192,6 +192,7 @@ export default {
       hideS3mNames: [],
       hideImgNames: [],
       hideTerrainNames: [],
+      S3MList:[],
     };
   },
   computed: {
@@ -393,7 +394,8 @@ export default {
               keyWord: "SmID",
             });
           }
-          store.state.tempLatData = layers[0][0]
+          store.state.S3MList.push(layers[0])
+          store.state.tempLatData=layers[0]
           // for (var i = 0; i < layers.length; i++) {
           //   let style = new Cesium.Style3D();
           //   style.bottomAltitude = window.modelBottomAltitude; //底部高度
@@ -444,6 +446,9 @@ export default {
               let s = viewer.scene.open(obj.url);
               this.vectorlayerlist.push(obj);
               this.promiseWhen([s], undefined, obj);
+              // store.setModelLayerList(this.vectorlayerlist);
+              // console.log(store.state.modellayerlist,'vvvvv');
+              // store.state.S3MList.push(obj)
               break;
             case "S3MDATA": //scp
               viewer.scene.addS3MTilesLayerByScp(obj.url, {

+ 5 - 1
src/store/store.js

@@ -31,6 +31,7 @@ var store2 = {
         modellayerlist: [],
         chooseLayer: [],
         flattenNames:[],//存储压平的名称数组
+        S3MList:[]
     },
     setisInitViewer(newValue) {
         this.state.isInitViewer = newValue;
@@ -45,9 +46,12 @@ var store2 = {
     setLayerList(newValue) {//分层分户
         this.state.chooseLayer = newValue;
     },
-    setFlattenNames(newValue) {//分层分户
+    setFlattenNames(newValue) {//压平
         this.state.flattenNames = newValue;
     },
+    setS3MList(newValue) {//压平
+        this.state.S3MList = newValue;
+    },
     setModelLayerList(newValue) {
         this.state.modellayerlist = newValue;
     },

+ 1 - 1
static/Config/config.js

@@ -7,7 +7,7 @@
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
 //后台地址配置
-window.axiosURI = "http://192.168.60.4:8080";
+window.axiosURI = "http://192.168.60.3:8080";
 //倾斜模型高度配置
 window.modelBottomAltitude = 10;
 // 服务器ip