From 3ebf3991507abebc0dcad29ccb979f328a64e86a Mon Sep 17 00:00:00 2001 From: yyy <2605810609@qq.com> Date: Thu, 3 Jul 2025 10:15:54 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=AF=E7=BA=BF=E5=A2=9E=E5=8A=A0=E9=98=B2?= =?UTF-8?q?=E6=92=9E=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/mapPage/realTimeMap/editMap.vue | 41 +++++++++++++++++++---- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/src/views/mapPage/realTimeMap/editMap.vue b/src/views/mapPage/realTimeMap/editMap.vue index 26b7edc3..54e3d4c5 100644 --- a/src/views/mapPage/realTimeMap/editMap.vue +++ b/src/views/mapPage/realTimeMap/editMap.vue @@ -2227,8 +2227,24 @@ const isometricReplication = () => { } //复制成功 const equalDistanceReplicationSucceeded = (list) => { - state.allMapPointInfo.push(...list) + // 过滤并收集重复点 + const duplicatePoints = [] + const filteredList = list.filter((newItem) => { + const isDup = state.allMapPointInfo.some( + (item) => + Number(item.locationX).toFixed(1) === Number(newItem.locationX).toFixed(1) && + Number(item.locationY).toFixed(1) === Number(newItem.locationY).toFixed(1) + ) + if (isDup) { + duplicatePoints.push(`(${newItem.locationX}, ${newItem.locationY})`) + } + return !isDup + }) + state.allMapPointInfo.push(...filteredList) addEditHistory() + if (duplicatePoints.length > 0) { + message.warning(`以下点已存在,未添加:${duplicatePoints.join('、')}`) + } } //生成检测点 @@ -2319,7 +2335,8 @@ const generateDetectionPoint = async () => { startingSortNum: undefined, endPointSortNum: undefined, startToEndToward: 1, //开始点到结束点 - endToStartToward: 0 //结束点到开始点 + endToStartToward: 0, //结束点到开始点 + collisionAvoidanceFlag: 1 // 是否开启防撞 0否 1是 } // 将新创建的点添加到地图点列表中 @@ -2759,7 +2776,10 @@ const endDrawSelection = (event) => { reverseSpeedLimit: 0.4, toward: 0, startingSortNum: state.startDrawPoint.sortNum, - endPointSortNum: endPoint.sortNum + endPointSortNum: endPoint.sortNum, + startToEndToward: 0, //开始点到结束点 + endToStartToward: 0, //结束点到开始点 + collisionAvoidanceFlag: 1 // 是否开启防撞 0否 1是 } // 使用 requestAnimationFrame 优化渲染 @@ -2952,7 +2972,10 @@ const clickDrawSelectionArea = () => { direction: 2, //方向 1.单向 2.双向, forwardSpeedLimit: 1.5, //正向限速 reverseSpeedLimit: 0.4, // 反向限速 - toward: 0 // 车头朝向( 0:正正 1:正反 2:反正 3:反反) + toward: 0, // 车头朝向( 0:正正 1:正反 2:反正 3:反反) + startToEndToward: 0, //开始点到结束点 + endToStartToward: 0, //结束点到开始点 + collisionAvoidanceFlag: 1 // 是否开启防撞 0否 1是 } state.selectedCurve = curve state.mapRouteList.push(curve) @@ -3482,7 +3505,10 @@ const handleChooseRoute = async (item, index, type, e) => { direction: 2, //方向 1.单向 2.双向, forwardSpeedLimit: 1.5, //正向限速 reverseSpeedLimit: 0.4, // 反向限速 - toward: 0 // 车头朝向( 0:正正 1:正反 2:反正 3:反反) + toward: 0, // 车头朝向( 0:正正 1:正反 2:反正 3:反反) + startToEndToward: 0, //开始点到结束点 + endToStartToward: 0, //结束点到开始点 + collisionAvoidanceFlag: 1 // 是否开启防撞 0否 1是 } let positionMapLineTwo = { isSelected: false, //是否选中 @@ -3512,7 +3538,10 @@ const handleChooseRoute = async (item, index, type, e) => { direction: 2, //方向 1.单向 2.双向, forwardSpeedLimit: 1.5, //正向限速 reverseSpeedLimit: 0.4, // 反向限速 - toward: 0 // 车头朝向( 0:正正 1:正反 2:反正 3:反反) + toward: 0, // 车头朝向( 0:正正 1:正反 2:反正 3:反反) + startToEndToward: 0, //开始点到结束点 + endToStartToward: 0, //结束点到开始点 + collisionAvoidanceFlag: 1 // 是否开启防撞 0否 1是 } try {