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