From 3fa6b0b6fc7925ffbf8c597c15d72938e13993d6 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 10 三月 2026 22:37:02 +0800
Subject: [PATCH] 处理围栏闭合问题

---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
index b25bab7..2dd7357 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/service/serviceimpl/XpElectronicFenceServiceImpl.java
@@ -133,6 +133,11 @@
         for (XpElectronicFenceArea newArea : newElectronicFenceAreas) {
             if (newArea.getAreaType() == 1) { // 只检查运营区域
                 for (XpElectronicFenceArea existingArea : existingOperationAreas) {
+                    //处理围栏闭合
+                    String[] split = existingArea.getFencePoints().split(",");
+                    if(split[0].equals(split[split.length - 1])){
+                        existingArea.setFencePoints(existingArea.getFencePoints() + "," + split[0]);
+                    }
                     if (polygonOverlapService.checkPolygonOverlap(
                             newArea.getFencePoints(),
                             existingArea.getFencePoints())) {
@@ -317,6 +322,11 @@
             for (XpElectronicFenceArea updatedArea : updatedElectronicFenceAreas) {
                 if (updatedArea.getAreaType() == 1) { // 只检查运营区域
                     for (XpElectronicFenceArea existingArea : existingOperationAreas) {
+                        //处理围栏闭合
+                        String[] split = existingArea.getFencePoints().split(",");
+                        if(split[0].equals(split[split.length - 1])){
+                            existingArea.setFencePoints(existingArea.getFencePoints() + "," + split[0]);
+                        }
                         if (polygonOverlapService.checkPolygonOverlap(
                                 updatedArea.getFencePoints(),
                                 existingArea.getFencePoints())) {

--
Gitblit v1.7.1