From 051f46b4ee09ef92df932a5463f5f6bffa1e2274 Mon Sep 17 00:00:00 2001
From: WX <1377869194@qq.com>
Date: 星期三, 13 九月 2023 09:52:06 +0800
Subject: [PATCH] 点面标绘查询

---
 src/views/plotting/plotting.vue |   52 ++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 48 insertions(+), 4 deletions(-)

diff --git a/src/views/plotting/plotting.vue b/src/views/plotting/plotting.vue
index c8fd464..cc61f47 100644
--- a/src/views/plotting/plotting.vue
+++ b/src/views/plotting/plotting.vue
@@ -53,6 +53,9 @@
   watch,
 } from "vue";
 import { useStore } from "vuex"; // 寮曞叆useStore 鏂规硶
+import { selectByPoint, selectByPolygon } from "@/api/api";
+import WKT from "terraformer-wkt-parser";
+import * as turf from "@turf/turf";
 const emits = defineEmits(["setCloseplotting"]);
 const store = useStore(); // 璇ユ柟娉曠敤浜庤繑鍥瀞tore 瀹炰緥
 let list = ref([]);
@@ -64,7 +67,14 @@
 });
 const lineColor = ref(null);
 const metiaColor = ref(null);
-
+//鐐规煡璇㈡帴鍙�
+const selectPoint = async () => {
+  const dt = await selectByPoint();
+};
+//绾挎煡璇㈡帴鍙�
+const selectPolygon = async () => {
+  const dt = await selectByPolygon();
+};
 const setLayerLocation = (res) => {
   var entities = Viewer.entities._entities._array;
   for (var i in entities) {
@@ -132,10 +142,17 @@
       disableDepthTestDistance: Number.POSITIVE_INFINITY,
     },
   });
+  var point = turf.point([geom.lat, geom.lng]);
+
+  var wkt = WKT.convert(point.geometry);
+
   list.value.push({
     name: name,
     layer: layer,
     icon: "d.png",
+    wkt: wkt,
+    lng: geom.lng,
+    lat: geom.lat,
   });
   plotNum.value.point++;
 };
@@ -157,7 +174,16 @@
       clampToGround: true,
     },
   });
+  var linestring = turf.lineString([
+    [-24, 63],
+    [-23, 60],
+    [-25, 65],
+    [-20, 69],
+  ]);
+
+  var wkt = WKT.convert(linestring.geometry);
   list.value.push({
+    wkt: wkt,
     name: name,
     layer: layer,
     icon: "x.png",
@@ -167,10 +193,12 @@
 const setAddEntityPolygon = (res) => {
   var std = [];
   var res_val = res.polygon.hierarchy.getValue().positions;
-
+  var geom;
+  var coord = [];
   for (var i in res_val) {
-    var geom = setCartesianToEightFour(res_val[i]);
+    geom = setCartesianToEightFour(res_val[i]);
     std.push(Cesium.Cartesian3.fromDegrees(geom.lng, geom.lat));
+    coord.push([geom.lng, geom.lat]);
   }
   var name = "Polygon#" + plotNum.value.polygon;
   var layer = Viewer.entities.add({
@@ -186,10 +214,27 @@
       height: 0,
     },
   });
+
+  coord.push(coord[0]);
+
+  var polygon = turf.polygon([coord]);
+  var wkt = WKT.convert(polygon.geometry);
+  console.log(polygon.geometry);
+  let turfPoint = [];
+  polygon.geometry.coordinates[0].forEach((e) => {
+    turfPoint.push(turf.point(e));
+  });
+  var features = turf.featureCollection(turfPoint);
+
+  var center = turf.center(features);
+  console.log(center);
   list.value.push({
+    wkt: wkt,
     name: name,
     layer: layer,
     icon: "m.png",
+    lng: center.geometry.coordinates[0],
+    lat: center.geometry.coordinates[1],
   });
   plotNum.value.polygon++;
 };
@@ -224,7 +269,6 @@
       if (nVal.entitiesData != {} && nVal.entitiesData.name) {
         for (var i in list.value) {
           if (list.value[i].name == nVal.entitiesData.name) {
-            console.log(list.value[i].name);
             list.value.splice(i, 1);
             break;
           }

--
Gitblit v1.9.3