From e8ac6ba3ede4e4b9f05c06f685811e6090792833 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Wed, 29 Oct 2025 14:12:23 +0800
Subject: [PATCH] feat:提取坐标
---
src/views/layerManagement/index.vue | 27 +--------------------------
1 files changed, 1 insertions(+), 26 deletions(-)
diff --git a/src/views/layerManagement/index.vue b/src/views/layerManagement/index.vue
index 0d02526..40bee91 100644
--- a/src/views/layerManagement/index.vue
+++ b/src/views/layerManagement/index.vue
@@ -26,6 +26,7 @@
</template>
<script setup>
+import { parseGeoDataToPositions } from '@/utils/geoParseUtil';
import { flyVisual } from '@/utils/cesium/mapUtil';
import rightEdit from '@/views/layerManagement/components/rightEdit.vue';
import leftList from '@/views/layerManagement/components/leftList.vue';
@@ -67,34 +68,8 @@
activeName.value = clickedTab.name;
};
-// 解析 geo_data 并转换为坐标格式(兼容 Polygon 和 LineString)
-const parseGeoDataToPositions = (geoDataStr, altitude) => {
- try {
- const geoData = JSON.parse(geoDataStr);
- let coordinates = [];
- if (geoData.type === 'Polygon') {
- // Polygon 坐标格式:[[[lng, lat], ...]] → 取第一个多边形的顶点
- coordinates = geoData.coordinates[0] || [];
- } else if (geoData.type === 'LineString') {
- // LineString 坐标格式:[[lng, lat], ...] → 直接取顶点
- coordinates = geoData.coordinates || [];
- } else {
- console.warn(`不支持的地理数据类型:${geoData.type}`);
- return [];
- }
- // 转换为 {lng, lat, height} 格式
- return coordinates.map(([lng, lat]) => ({
- lng: Number(lng),
- lat: Number(lat),
- height: Number(altitude) || 0,
- }));
- } catch (error) {
- console.error('解析 geo_data 失败:', error);
- return [];
- }
-};
let tbJwdList = [];
const selectDataList = ref([]);
// 编辑区域
--
Gitblit v1.9.3