From 53aad5698fb113201e79b5cca981bdfb13d23d97 Mon Sep 17 00:00:00 2001
From: jinglun-cloud <jinglun2019@foxmail.com>
Date: 星期二, 05 五月 2026 14:45:44 +0800
Subject: [PATCH] 简化设备长宽计算的实现
---
src/main/webapp/static/js/basMap/mapTrackGeometry.js | 41 +++++++++++++++++++++++++++++++++++++++--
1 files changed, 39 insertions(+), 2 deletions(-)
diff --git a/src/main/webapp/static/js/basMap/mapTrackGeometry.js b/src/main/webapp/static/js/basMap/mapTrackGeometry.js
index 1fe8db3..6545496 100644
--- a/src/main/webapp/static/js/basMap/mapTrackGeometry.js
+++ b/src/main/webapp/static/js/basMap/mapTrackGeometry.js
@@ -1000,6 +1000,41 @@
}
/**
+ * 鐜┛锛氭妸 getPositionAfterMove 绛夎繑鍥炵殑 position 鍘嬪埌杞ㄥ甫涓嚎锛涢潪鐜┛鎴栨棤鏁� position 鍘熸牱杩斿洖銆�
+ * @param {{ type: string }} trackInfo
+ * @param {{ x: number, y: number, path?: object }|null|undefined} position
+ * @returns {typeof position}
+ */
+ function applyAnnulusBandCenterToPosition(trackInfo, position) {
+ if (!position || !trackInfo || trackInfo.type !== 'annulus') {
+ return position;
+ }
+ var c = centerAnnulusBandPoint(trackInfo, position.x, position.y, position.path);
+ return Object.assign({}, position, { x: c.x, y: c.y });
+ }
+
+ /**
+ * 娌� pathList 绉诲姩鍚庡啀瀵圭幆绌垮仛杞ㄥ甫涓嚎淇锛堜笌 getPositionAfterMove + applyAnnulusBandCenterToPosition 绛変环锛夈��
+ * @param {{ type: string }} trackInfo
+ * @param {{ x: number, y: number }} point 璧风偣锛涚幆绌夸笂搴斿湪澶栧湀 path 涓�
+ * @param {object[]} pathList
+ * @param {object} path
+ * @param {number} deltaDistance
+ * @param {number} [angle]
+ * @returns {{ x: number, y: number, path: object, angle?: number }} 涓� getPositionAfterMove 杩斿洖褰㈡�佷竴鑷�
+ */
+ function computeFinalPosition(trackInfo, point, pathList, path, deltaDistance, angle) {
+ var position = getPositionAfterMove({
+ point: point,
+ pathList: pathList,
+ path: path,
+ deltaDistance: deltaDistance,
+ angle: angle
+ });
+ return applyAnnulusBandCenterToPosition(trackInfo, position);
+ }
+
+ /**
* 灏嗗潗鏍囧帇鍥炵幆绌垮鍦� path锛堢洿绾挎鎶曞奖銆佸渾寮ф钀藉埌鍗婂緞涓婏級銆�
* sprite 宸插仛 centerAnnulusBandPoint 鏃朵笉鑳界洿鎺ヤ綔涓� getPositionAfterMove 鐨勮捣鐐癸紝鍚﹀垯浼氭部銆岀偣鈫掓缁堢偣銆嶆枩绉绘紓绉汇��
* @param {number} x
@@ -1007,8 +1042,8 @@
* @param {{ type: string, startX?: number, startY?: number, x?: number, y?: number, radius?: number }|null|undefined} path
* @returns {{ x: number, y: number }}
*/
- function snapToAnnulusOuterPath(x, y, path) {
- if (!path) {
+ function snapToAnnulusOuterPath(trackInfo, x, y, path) {
+ if (!path || trackInfo.type !== 'annulus') {
return { x: x, y: y };
}
if (path.type === 'line') {
@@ -1191,6 +1226,8 @@
snapToAnnulusOuterPath: snapToAnnulusOuterPath,
startDrawSmoothedPath: startDrawSmoothedPath,
getRotate: getRotate,
+ computeFinalPosition:computeFinalPosition,
+ applyAnnulusBandCenterToPosition:applyAnnulusBandCenterToPosition,
drawCrnDeviceGraphics: drawCrnDeviceGraphics,
drawRgvDeviceGraphics: drawRgvDeviceGraphics
};
--
Gitblit v1.9.1