From 9ac53e0dd847321f003c3b19cc56a3d55e54bfa2 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 10 三月 2026 22:38:17 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi

---
 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 b827149..040807c 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