zpf 1 year ago
parent
commit
786e2c175a

+ 1 - 1
src/components/Combinations/terrainCombination/TerrainCombination.vue

@@ -7,7 +7,7 @@
         <span :class="{ titleColor: floodShow }" class="title-txt" @click="choose(1)">{{ Resource.FloodAnalysis }}</span>
         <span :class="{ titleColor: slopeShow }" class="title-txt" @click="choose(2)">{{ Resource.terrainSlope }}</span>
         <span :class="{ titleColor: isolineShow }" class="title-txt" @click="choose(3)">{{ Resource.isoline }}</span>
-        <span :class="{ titleColor: isCutFillShow }" class="title-txt" @click="choose(4)">{{ Resource.isoline }}111</span>
+        <span :class="{ titleColor: isCutFillShow }" class="title-txt" @click="choose(4)">地形平整估算</span>
 
         <span class="closeBtn" @click="toggleVisibility">&times;</span>
       </div>

+ 107 - 9
src/components/TerrainAnalysis/TerrainCutFillAnalysis/TerrainCutFillAnalysis.vue

@@ -1,7 +1,19 @@
 <template>
-<div>
-  dasdasd
-</div>
+  <div v-show="isCutFill" class="cut_fill_box">
+    <div class="cut_fill_centent1">
+      设计高度:
+      <el-input v-model="height" placeholder=""></el-input>
+
+      土石方里(立方米):
+      <el-input v-model="result" placeholder=""></el-input>
+
+    </div>
+    <div class="cut_fill_Buttons">
+      <el-button>绘制</el-button>
+      <el-button>清楚</el-button>
+
+    </div>
+  </div>
 </template>
 
 <script>
@@ -11,10 +23,16 @@ export default {
   name: "TerrainCutFillAnalysis",
   components: {},
   data() {
-    return {};
+
+    return { input: '', sharedState: store.state,height:300,result:null };
   },
   //监听属性 类似于data概念
-  computed: {},
+  computed: {
+
+    isCutFill: function () {
+      return this.sharedState.terrain[4];
+    },
+  },
   //监控data中的数据变化
   watch: {},
   //方法集合
@@ -22,8 +40,86 @@ export default {
   beforeCreate() { }, //生命周期 - 创建之前
   created() {
     console.log(123123);
-    
-   }, //生命周期 - 创建完成(可以访问当前this实例)
+    // http://www.supermapol.com/realspace/services/3D-dixingyingxiang/rest/realspace/datas/DatasetDEM
+    // http://192.168.60.3:8099/iserver/services/3D-local3DCache-SanYaDSMHuanCun/rest/realspace/datas/dsm@dsm    
+
+
+    // terrainProvider: new Cesium.CesiumTerrainProvider({
+    //   url: 'http://192.168.60.3:8099/iserver/services/3D-local3DCache-SanYaDSMHuanCun/rest/realspace/datas/dsm@dsm',
+    //   isSct: true//地形服务源自SuperMap iServer发布时需设置isSct为true
+    // }),
+
+    const terrainP = new Cesium.CesiumTerrainProvider({
+      url: 'http://192.168.60.3:8099/iserver/services/3D-local3DCache-SanYaDSMHuanCun/rest/realspace/datas/dsm@dsm',
+      isSct: true//地形服务源自SuperMap iServer发布时需设置isSct为true
+    });
+    viewer.terrainProvider = terrainP;
+
+    viewer.scene.globe.depthTestAgainstTerrain = false;
+
+
+    //绘制多边形
+    var handlerPolygon = new Cesium.DrawHandler(viewer, Cesium.DrawMode.Polygon, 0);
+    handlerPolygon.activeEvt.addEventListener(function (isActive) {
+      if (isActive == true) {
+        viewer.enableCursorStyle = false;
+        viewer._element.style.cursor = '';
+        // $('body').removeClass('drawCur').addClass('drawCur');
+      }
+      else {
+        viewer.enableCursorStyle = true;
+        // $('body').removeClass('drawCur');
+      }
+    });
+    handlerPolygon.movingEvt.addEventListener(function (windowPosition) {
+      if (windowPosition.x < 200 && windowPosition.y < 150) {
+        tooltip.setVisible(false);
+        return;
+      }
+      if (handlerPolygon.isDrawing) {
+        tooltip.showAt(windowPosition, '<p>点击确定开挖区域中间点</p><p>右键单击结束绘制,进行开挖</p>');
+      }
+      else {
+        tooltip.showAt(windowPosition, '<p>点击绘制开挖区域第一个点</p>');
+      }
+    });
+    handlerPolygon.drawEvt.addEventListener(function (result) {
+      if (!result.object.positions) {
+        tooltip.showAt(result, '<p>请绘制正确的多边形</p>');
+        handlerPolygon.polygon.show = false;
+        handlerPolygon.polyline.show = false;
+        handlerPolygon.deactivate();
+        handlerPolygon.activate();
+        return;
+      };
+      var array = [].concat(result.object.positions);
+      tooltip.setVisible(false);
+      var positions = [];
+      for (var i = 0, len = array.length; i < len; i++) {
+        var cartographic = Cesium.Cartographic.fromCartesian(array[i]);
+        var longitude = Cesium.Math.toDegrees(cartographic.longitude);
+        var latitude = Cesium.Math.toDegrees(cartographic.latitude);
+        var h = cartographic.height;
+        if (positions.indexOf(longitude) == -1 && positions.indexOf(latitude) == -1) {
+          positions.push(longitude);
+          positions.push(latitude);
+          positions.push(h);
+        }
+      }
+      viewer.scene.globe.removeAllExcavationRegion();
+      viewer.scene.globe.addExcavationRegion({
+        name: 'ggg',
+        position: positions,
+        height: 500,
+        transparent: false
+      });
+      handlerPolygon.polygon.show = false;
+      handlerPolygon.polyline.show = false;
+      handlerPolygon.deactivate();
+      handlerPolygon.activate();
+    });
+    handlerPolygon.activate();
+  }, //生命周期 - 创建完成(可以访问当前this实例)
   beforeMount() { }, //生命周期 - 挂载之前
   mounted() { }, //生命周期 - 挂在完成
   beforeUpdate() { }, //生命周期 - 更新之前
@@ -34,6 +130,8 @@ export default {
   deactivated() { } //若组件实例是 <KeepAlive> 缓存树的一部分,当组件从 DOM 中被移除时调用。
 };
 </script>
-<style  scoped>
-
+<style lang="scss" scoped>
+.cut_fill_centent1 {
+  width: 100%;
+}
 </style>

+ 3 - 3
src/store/store.js

@@ -9,7 +9,7 @@ var store2 = {
         toolBar: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
         addLayer: [1, 0, 0],
         sceneAtttribute: [1, 0, 0, 0, 0],
-        terrain: [1, 0, 0, 0,0],
+        terrain: [1, 0, 0, 0, 0],
         clip: [1, 0, 0, 0],
         analysis: [1, 0, 0, 0, 0],
         cityPlan: [1, 0, 0, 0, 0],
@@ -29,7 +29,7 @@ var store2 = {
         isEditZ: false,
         vectorlayerlist: [],
         modellayerlist: [],
-        chooseLayer:[]
+        chooseLayer: []
     },
     setisInitViewer(newValue) {
         this.state.isInitViewer = newValue;
@@ -63,7 +63,7 @@ var store2 = {
     },
     // 设置导航工具显隐
     setToolBarAction(newValue) {
-        if (typeof(newValue) != "undefined") {
+        if (typeof (newValue) != "undefined") {
             if (this.state.toolBarActive != newValue) {
                 this.hideToolBar();
             }

+ 1 - 1
src/views/cockpitNew/gdbh.vue

@@ -85,7 +85,7 @@ export default {
             data.forEach(function (value, index, obj) {
                 value.pm = pm[index]
             })
-            console.log('ssss', data)
+            // console.log('ssss', data)
             const colors = ['rgb(96,149,239)', 'rgb(239,157,147)', 'rgb(232,191,72)', 'rgb(189,147,227)']
             const chartData = data.map((item, index) => ({
                 value: item.value,