From b1e9c826c1ba48c3dc263039699636ed2ba3be4e Mon Sep 17 00:00:00 2001
From: surprise <15810472099@163.com>
Date: 星期一, 27 十一月 2023 11:16:06 +0800
Subject: [PATCH] 版本更新,图层管理添加矢量数据下载,视角高度增加放大限制

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

diff --git a/src/assets/js/Map/temporaryTools.js b/src/assets/js/Map/temporaryTools.js
index fdafaf3..4873e60 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) {
@@ -10,17 +12,68 @@
             }
         }
     },
-    locationTemporaryLayer(res){
+    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;
+    
+        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])
+                    }
+                }
+                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;
+        }
+
+       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
+                        heading: Cesium.Math.toRadians(0.0),
+                        pitch: Cesium.Math.toRadians(-90),
+                        range: 400
                     }
-                  });
+                });
             }
         }
     },
@@ -143,11 +196,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,
             },
         });
     },
@@ -277,6 +332,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,
@@ -290,7 +346,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,
         }
     },
@@ -420,6 +476,7 @@
             layerType: '鍩烘湰鐐�',
             heightReference: res.point.disableDepthTestDistance != null ? false : true,
             size: res.point.pixelSize._value,
+
         }
     },
 

--
Gitblit v1.9.3