From 0f16db42e4e331bfaf084c27ca602c275e87668d Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 28 Oct 2025 18:07:42 +0800
Subject: [PATCH] feat:渲染数据
---
src/views/layerManagement/components/utils.js | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/views/layerManagement/components/utils.js b/src/views/layerManagement/components/utils.js
index 80c8101..a80ec1a 100644
--- a/src/views/layerManagement/components/utils.js
+++ b/src/views/layerManagement/components/utils.js
@@ -61,6 +61,8 @@
this.delPoint = this.delPoint.bind(this)
// 外部订阅者
this.listeners = []
+ this.polygons = []; // 存储所有多边形数据 { id, positions, entity, pointsEntity }
+ this.currentPolygonIndex = -1; // 当前操作的多边形索引
}
// 实体命名常量
@@ -164,6 +166,8 @@
ind: pointIndex, // 索引记录
},
})
+
+
}
// 清除不在范围内的点
removeLastInvalidPoint() {
@@ -308,11 +312,11 @@
this.removeMenuPopup()
const pickedAllEntity = this.viewer.scene.drillPick(click.position).filter(i => i.id)
- const isStartPoint = pickedAllEntity.find(i => i.id.name === '起飞点')
+
const isPolygonPoint = pickedAllEntity.find(i => i.id.name === DrawPolygon.ENTITY_NAMES.POINT)
const isPolygon = pickedAllEntity.find(i => i.id.name === DrawPolygon.ENTITY_NAMES.POLYGON)
- if (isStartPoint) return
+
// 如果不是绘制模式
if (!this.drawingMode) {
@@ -349,10 +353,9 @@
}
// 鼠标右键点击(弹出菜单)
- handleRightClick(click) {
+ handleRightClick(click) {
const that = this
if (that.drawingMode) return
-
that.removeMenuPopup()
const pickedAllEntity = that.viewer.scene.drillPick(click.position).filter(i => i.id)
@@ -367,10 +370,12 @@
pickedEntity = isPolygon
tooltipEvent = that.delPolygon
menuType = 'polygon'
+
} else if (isEditPoint) {
pickedEntity = isEditPoint
tooltipEvent = that.delPoint
menuType = 'edit-point'
+
}
if (pickedEntity && this.isDeleteTheArea) {
@@ -469,6 +474,7 @@
menuPopup.id = 'planarPolygonEditMenu'
menuPopup.className = 'planar-polygon-edit-menu'
+
const menuItems =
type === 'polygon'
? [{ title: '删除测区', class: 'del-planar-polygon' }]
@@ -480,6 +486,7 @@
titleDiv.className = item.class
menuPopup.appendChild(titleDiv)
})
+
this.isPreviewMode = true
menuPopupVBox.appendChild(menuPopup)
return menuPopupVBox
@@ -541,6 +548,7 @@
this.initHandler(viewer)
this.isPureSpotPreview = isPurePreview
this.startDrawing()
+
let newPosition = positions.map(item => {
return Cesium.Cartesian3.fromDegrees(Number(item.lng), Number(item.lat), Number(item.height))
})
--
Gitblit v1.9.3