From cf982e09916174dc90d5f6d51c8d9e8e1c2abebe Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Mon, 02 Feb 2026 11:34:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
applications/drone-command/src/utils/cesium/shapeTools/shapeUtils.js | 38 ++++++++++++++++++++++++++++++++++++++
1 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/applications/drone-command/src/utils/cesium/shapeTools/shapeUtils.js b/applications/drone-command/src/utils/cesium/shapeTools/shapeUtils.js
index 86d13bd..8c83c26 100644
--- a/applications/drone-command/src/utils/cesium/shapeTools/shapeUtils.js
+++ b/applications/drone-command/src/utils/cesium/shapeTools/shapeUtils.js
@@ -93,3 +93,41 @@
if (meters >= 1000) return `${(meters / 1000).toFixed(2)} km`
return `${meters.toFixed(2)} m`
}
+
+export const getBufferRadiusPoint = (centerCartesian, radius) => {
+ if (!centerCartesian || !Number.isFinite(radius)) return null
+ const frame = Cesium.Transforms.eastNorthUpToFixedFrame(centerCartesian)
+ const local = new Cesium.Cartesian3(radius, 0, 0)
+ return Cesium.Matrix4.multiplyByPoint(frame, local, new Cesium.Cartesian3())
+}
+
+export const getBufferRadiusLabelStyle = () => ({
+ font: '14px Source Han Sans CN',
+ fillColor: Cesium.Color.WHITE,
+ outlineColor: Cesium.Color.fromBytes(24, 48, 92, 255),
+ outlineWidth: 2,
+ style: Cesium.LabelStyle.FILL_AND_OUTLINE,
+ showBackground: true,
+ backgroundColor: Cesium.Color.fromBytes(8, 12, 22, 180),
+ heightReference: Cesium.HeightReference.CLAMP_TO_GROUND,
+ verticalOrigin: Cesium.VerticalOrigin.BOTTOM,
+ horizontalOrigin: Cesium.HorizontalOrigin.CENTER,
+ pixelOffset: new Cesium.Cartesian2(0, -12),
+ disableDepthTestDistance: Number.POSITIVE_INFINITY,
+})
+
+export const addBufferRadiusLabelEntity = (dataSource, centerCartesian, radius, options = {}) => {
+ if (!dataSource) return null
+ const position = getBufferRadiusPoint(centerCartesian, radius)
+ if (!position) return null
+ const { name, customData } = options
+ return dataSource.entities.add({
+ ...(name ? { name } : {}),
+ ...(customData ? { customData } : {}),
+ position,
+ label: {
+ ...getBufferRadiusLabelStyle(),
+ text: formatBufferRadius(radius),
+ },
+ })
+}
--
Gitblit v1.9.3