From 36fbd1e5a40e319e6ac5f43d11c99ba4b66e93a3 Mon Sep 17 00:00:00 2001
From: surprise <15810472099@163.com>
Date: 星期三, 29 十一月 2023 16:50:16 +0800
Subject: [PATCH] 坡度分析下载修改

---
 src/assets/js/Map/temporaryTools.js |   88 ++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 81 insertions(+), 7 deletions(-)

diff --git a/src/assets/js/Map/temporaryTools.js b/src/assets/js/Map/temporaryTools.js
index f8be7c8..2a2f44a 100644
--- a/src/assets/js/Map/temporaryTools.js
+++ b/src/assets/js/Map/temporaryTools.js
@@ -1,5 +1,7 @@
 import store from "@/store";
 import { none } from "ol/centerconstraint";
+import * as turf from "@turf/turf";
+import WKT from "terraformer-wkt-parser";
 var temporaryTool = {
     isedit: false,
     removeTemporaryLayer(res) {
@@ -7,6 +9,76 @@
         for (var i in entities) {
             if (entities[i].id == res.id && entities[i]._shpType == res.shpType) {
                 window.Viewer.entities.remove(entities[i])
+            }
+        }
+    },
+    removeTemporaryLayerAll() {
+        var entities = window.Viewer.entities._entities._array;
+        for (var i = 0; i < entities.length; i++) {
+            if (entities[i]._shpType && entities[i]._shpType == "temporaryLayer") {
+                window.Viewer.entities.remove(entities[i])
+                i--;
+            }
+        }
+    },
+
+    getWKT(res) {
+        var geom = res.geometry;
+        var coord = null;
+        debugger
+        switch (res.type) {
+            case "point":
+            case "label":
+                coord = turf.point([geom.lng, geom.lat]);
+                break;
+            case "polygon":
+                var std = [];
+                for (var i = 0; i < geom.length; i++) {
+                    if (i % 2 == 0) {
+                        std.push([geom[i], geom[i + 1]])
+                    }
+                }
+                std.push(std[0])
+                debugger
+                coord = turf.polygon([std]);
+                break;
+            case "polyline":
+
+                var std = [];
+                for (var i = 0; i < geom.length; i++) {
+                    if (i % 2 == 0) {
+                        std.push([geom[i], geom[i + 1]])
+                    }
+                }
+
+                coord = turf.lineString(std);
+                break;
+            case "rectangle":
+                coord = turf.polygon([[
+                    [geom[0], geom[1]],
+                    [geom[0], geom[3]],
+                    [geom[2], geom[3]],
+                    [geom[2], geom[1]],
+                    [geom[0], geom[1]],
+                ]]);
+                break;
+        }
+        var wkt = WKT.convert(coord.geometry);
+        debugger
+        return WKT.convert(coord.geometry);
+
+    },
+    locationTemporaryLayer(res) {
+        var entities = window.Viewer.entities._entities._array;
+        for (var i in entities) {
+            if (entities[i].id == res.id && entities[i]._shpType == res.shpType) {
+                window.Viewer.flyTo(entities[i], {
+                    offset: {
+                        heading: Cesium.Math.toRadians(0.0),
+                        pitch: Cesium.Math.toRadians(-90),
+                        range: 400
+                    }
+                });
             }
         }
     },
@@ -129,11 +201,13 @@
                     res.near,
                     res.far
                 ),
-                outline: true,
+                outline: false,
                 outlineWidth: res.width,
+
                 outlineColor: Cesium.Color.fromCssColorString(
                     res.outlineColor
                 ).withAlpha(res.outlineAlpha),
+                heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
             },
         });
     },
@@ -142,7 +216,7 @@
         if (res.outline) {
             outlinewidth = res.width
         }
- 
+
         window.Viewer.entities.add({
             name: res.cnName,
             id: res.id,
@@ -156,7 +230,7 @@
                     res.near,
                     res.far
                 ),
-  
+
                 material: new Cesium.PolylineOutlineMaterialProperty({
                     color: Cesium.Color.fromCssColorString(res.material).withAlpha(
                         res.materialAlpha
@@ -263,6 +337,7 @@
             var coord = this.setCartesianToEightFour(val[i])
             geom.push(coord.lng, coord.lat)
         }
+
         return {
             id: this.isedit ? res.id : (new Date()).getTime(),
             cnName: res.name,
@@ -276,7 +351,7 @@
             type: 'polygon',
             shpType: 'temporaryLayer',
             layerType: '澶氳竟褰�',
-            outline: res.outline != null ? res.outline : false,
+            outline: res.polygon.outline != null ? res.polygon.outline._value : false,
             width: res.polygon.outlineWidth ? res.polygon.outlineWidth._value : 1,
         }
     },
@@ -339,7 +414,7 @@
             layerType: '绾�',
             geometry: geom,
             heightReference: res.polyline.clampToGround._value,
-            outline:  res.outline != null ?  res.outline : false,
+            outline: res.outline != null ? res.outline : false,
             width: res.polyline.width._value,
             material: this.colorRgbToHex('rgb(' + (mataColor.red * 255) + ',' + (mataColor.green * 255) + ',' + (mataColor.blue * 255) + ')'),
             outlineColor: this.colorRgbToHex('rgb(' + (outlineColor.red * 255) + ',' + (outlineColor.green * 255) + ',' + (outlineColor.blue * 255) + ')'),
@@ -361,7 +436,6 @@
         if (res.label.outlineWidth && res.label.outlineWidth._value) {
             width = res.label.outlineWidth._value
         }
-
         return {
             id: this.isedit ? res.id : (new Date()).getTime(),
             cnName: res.name,
@@ -386,7 +460,6 @@
             layerType: '鏂囨湰鐐�',
         }
     },
-
     getPointEntityObj(res) {
         var mataColor = res.point.color._value;
         var outlineColor = res.point.outlineColor._value;
@@ -408,6 +481,7 @@
             layerType: '鍩烘湰鐐�',
             heightReference: res.point.disableDepthTestDistance != null ? false : true,
             size: res.point.pixelSize._value,
+
         }
     },
 

--
Gitblit v1.9.3