Browse Source

中图日照分析修改

gushoubang 2 months ago
parent
commit
ab43ba2675

+ 11 - 3
src/utils/MapHelper/MapHelper.js

@@ -228,7 +228,7 @@ export const getXYZPoint = async (Points) => {
       positions.push(Cesium.Cartographic.fromDegrees(position[0], position[1]));
     }
     //如果有dem高程,则取dem高程,如果没有,则地图面高度为0
-    if (viewer.terrainProvider) {
+    if (viewer.terrainProvider&&viewer.terrainProvider.visible&&viewer.terrainProvider.visible==true) {
       var promise = Cesium.sampleTerrainMostDetailed(
         viewer.terrainProvider,
         positions
@@ -246,13 +246,21 @@ export const getXYZPoint = async (Points) => {
         return xyzs;
       }
     } else {
+      var PointArr = [];
       for (var index = 0; index < Points.length; index++) {
         var Point = Points[index];
         Point = { x: Point[0], y: Point[1], z: 0 };
+        PointArr.push(Point);
       }
-      return Points;
+      return PointArr;
     }
   } catch (error) {
-    return [];
+    var PointArr = [];
+    for (var index = 0; index < Points.length; index++) {
+      var Point = Points[index];
+      Point = { x: Point[0], y: Point[1], z: 0 };
+      PointArr.push(Point);
+    }
+    return PointArr;
   }
 };

+ 17 - 1
src/views/ConstructionApplication3D/SunlightAnalysis/SunlightAnalysis.vue

@@ -241,6 +241,17 @@
         </el-table>
       </el-col>
     </el-row> -->
+    <el-dialog
+  title="提示"
+  :visible.sync="dialogVisible"
+  :append-to-body="true"
+  width="30%"
+  :before-close="handleClose">
+  <span style="color:#ffffff">为保证分析正确性,请先打开高程数据</span>
+  <span slot="footer" class="dialog-footer">
+    <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+  </span>
+</el-dialog>
   </div>
 </template>
 
@@ -336,6 +347,7 @@ export default {
       gd: 0,
       geopolygon: null,
       ProjectScope: { positions: [] },
+      dialogVisible:false
     };
   },
   props: {
@@ -366,7 +378,7 @@ export default {
   mounted() {
     // sightline = new Cesium.Sightline(scene);
     // sightline.build();
-    this.multiViewportMode = scene.multiViewportMode + 1;
+    //this.multiViewportMode = scene.multiViewportMode + 1;
     document.oncontextmenu = function (e) {
       e.preventDefault();
     };
@@ -687,6 +699,10 @@ export default {
       that.clear();
       that.tableData = [];
 
+      if (!viewer.terrainProvider||!viewer.terrainProvider.visible||viewer.terrainProvider.visible!=true) {
+        that.dialogVisible=true;
+        return;
+      }
       if (that.form.startTime == that.form.endTime) {
         this.$message.warning("请选择一个日照时间范围区间!!!");
         return;