From 13d032241e1a2938a8be4f64c9171e1240e9ea1e Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期一, 22 十二月 2025 18:50:42 +0800
Subject: [PATCH] 新增了边界管理页面和首页边界虚线功能

---
 src/dikuai/Dikuai.java |   63 +++++++++++++++++++++++++++++++
 1 files changed, 63 insertions(+), 0 deletions(-)

diff --git a/src/dikuai/Dikuai.java b/src/dikuai/Dikuai.java
index c33d8e4..8a9a589 100644
--- a/src/dikuai/Dikuai.java
+++ b/src/dikuai/Dikuai.java
@@ -17,12 +17,18 @@
     private String landName;
     // 杈圭晫鍘熷鍧愭爣
     private String boundaryOriginalCoordinates;
+    // 杈圭晫鍘熷XY鍧愭爣锛堢浉瀵逛簬鍩哄噯绔欑殑XY鍧愭爣锛�
+    private String boundaryOriginalXY;
     // 杈圭晫鍧愭爣锛堝瓨鍌ㄥ杈瑰舰鍧愭爣鐐归泦鍚堬級
     private String boundaryCoordinates;
     // 瑙勫垝璺緞锛堝瓨鍌ㄨ矾寰勫潗鏍囩偣闆嗗悎锛�
     private String plannedPath;
     // 杩斿洖鐐瑰潗鏍�
     private String returnPointCoordinates;
+    // 寰�杩旇矾寰勫潗鏍囷紙鍓茶崏鏈哄畬鎴愬壊鑽変綔涓氳繑鍥炵殑璺緞鍧愭爣锛屾牸寮忥細X1,Y1;X2,Y2;...;XN,YN锛�
+    private String returnPathCoordinates;
+    // 寰�杩旇矾寰勫師濮嬪潗鏍�
+    private String returnPathRawCoordinates;
     // 杈圭晫鐐归棿闅�
     private String boundaryPointInterval;
     // 瑙掑害闃堝��
@@ -47,6 +53,8 @@
     private String mowingBladeWidth;
     // 鍓茶崏閲嶅彔璺濈锛堢背锛夛紝榛樿0.06绫�
     private String mowingOverlapDistance;
+    // 鍓茶崏瀹夊叏璺濈锛堢背锛�
+    private String mowingSafetyDistance;
 
     // 瀛樺偍澶氫釜鍦板潡鐨勬槧灏勮〃锛岄敭涓哄湴鍧楃紪鍙�
     private static Map<String, Dikuai> dikuaiMap = new HashMap<>();
@@ -95,9 +103,12 @@
                 dikuai.userId = landProps.getProperty("userId", "-1");
                 dikuai.landName = landProps.getProperty("landName", "-1");
                 dikuai.boundaryOriginalCoordinates = landProps.getProperty("boundaryOriginalCoordinates", "-1");
+                dikuai.boundaryOriginalXY = landProps.getProperty("boundaryOriginalXY", "-1");
                 dikuai.boundaryCoordinates = landProps.getProperty("boundaryCoordinates", "-1");
                 dikuai.plannedPath = landProps.getProperty("plannedPath", "-1");
                 dikuai.returnPointCoordinates = landProps.getProperty("returnPointCoordinates", "-1");
+                dikuai.returnPathCoordinates = landProps.getProperty("returnPathCoordinates", "-1");
+                dikuai.returnPathRawCoordinates = landProps.getProperty("returnPathRawCoordinates", "-1");
                 dikuai.boundaryPointInterval = landProps.getProperty("boundaryPointInterval", "-1");
                 dikuai.angleThreshold = landProps.getProperty("angleThreshold", "-1");
                 dikuai.intelligentSceneAnalysis = landProps.getProperty("intelligentSceneAnalysis", "-1");
@@ -110,6 +121,7 @@
                 dikuai.mowingTrack = landProps.getProperty("mowingTrack", "-1");
                 dikuai.mowingBladeWidth = landProps.getProperty("mowingBladeWidth", "0.40");
                 dikuai.mowingOverlapDistance = landProps.getProperty("mowingOverlapDistance", "0.06");
+                dikuai.mowingSafetyDistance = landProps.getProperty("mowingSafetyDistance", "-1");
                 
                 dikuaiMap.put(landNum, dikuai);
             }
@@ -192,6 +204,9 @@
             case "boundaryOriginalCoordinates":
                 this.boundaryOriginalCoordinates = value;
                 return true;
+            case "boundaryOriginalXY":
+                this.boundaryOriginalXY = value;
+                return true;
             case "boundaryCoordinates":
                 this.boundaryCoordinates = value;
                 return true;
@@ -201,6 +216,12 @@
             case "returnPointCoordinates":
                 this.returnPointCoordinates = value;
                 return true;
+            case "returnPathCoordinates":
+                this.returnPathCoordinates = value;
+                return true;
+            case "returnPathRawCoordinates":
+                this.returnPathRawCoordinates = value;
+                return true;
             case "boundaryPointInterval":
                 this.boundaryPointInterval = value;
                 return true;
@@ -237,6 +258,9 @@
             case "mowingOverlapDistance":
                 this.mowingOverlapDistance = value;
                 return true;
+            case "mowingSafetyDistance":
+                this.mowingSafetyDistance = value;
+                return true;
             default:
                 System.err.println("鏈煡瀛楁: " + fieldName);
                 return false;
@@ -258,9 +282,12 @@
             if (dikuai.landNumber != null) properties.setProperty(landNumber + ".landNumber", dikuai.landNumber);
             if (dikuai.landName != null) properties.setProperty(landNumber + ".landName", dikuai.landName);
             if (dikuai.boundaryOriginalCoordinates != null) properties.setProperty(landNumber + ".boundaryOriginalCoordinates", dikuai.boundaryOriginalCoordinates);
+            if (dikuai.boundaryOriginalXY != null) properties.setProperty(landNumber + ".boundaryOriginalXY", dikuai.boundaryOriginalXY);
             if (dikuai.boundaryCoordinates != null) properties.setProperty(landNumber + ".boundaryCoordinates", dikuai.boundaryCoordinates);
             if (dikuai.plannedPath != null) properties.setProperty(landNumber + ".plannedPath", dikuai.plannedPath);
             if (dikuai.returnPointCoordinates != null) properties.setProperty(landNumber + ".returnPointCoordinates", dikuai.returnPointCoordinates);
+            if (dikuai.returnPathCoordinates != null) properties.setProperty(landNumber + ".returnPathCoordinates", dikuai.returnPathCoordinates);
+            if (dikuai.returnPathRawCoordinates != null) properties.setProperty(landNumber + ".returnPathRawCoordinates", dikuai.returnPathRawCoordinates);
             if (dikuai.boundaryPointInterval != null) properties.setProperty(landNumber + ".boundaryPointInterval", dikuai.boundaryPointInterval);
             if (dikuai.angleThreshold != null) properties.setProperty(landNumber + ".angleThreshold", dikuai.angleThreshold);
             if (dikuai.intelligentSceneAnalysis != null) properties.setProperty(landNumber + ".intelligentSceneAnalysis", dikuai.intelligentSceneAnalysis);
@@ -273,6 +300,7 @@
             if (dikuai.mowingTrack != null) properties.setProperty(landNumber + ".mowingTrack", dikuai.mowingTrack);
             if (dikuai.mowingBladeWidth != null) properties.setProperty(landNumber + ".mowingBladeWidth", dikuai.mowingBladeWidth);
             if (dikuai.mowingOverlapDistance != null) properties.setProperty(landNumber + ".mowingOverlapDistance", dikuai.mowingOverlapDistance);
+            if (dikuai.mowingSafetyDistance != null) properties.setProperty(landNumber + ".mowingSafetyDistance", dikuai.mowingSafetyDistance);
         }
         
         try {
@@ -320,6 +348,14 @@
         this.boundaryOriginalCoordinates = boundaryOriginalCoordinates;
     }
 
+    public String getBoundaryOriginalXY() {
+        return boundaryOriginalXY;
+    }
+
+    public void setBoundaryOriginalXY(String boundaryOriginalXY) {
+        this.boundaryOriginalXY = boundaryOriginalXY;
+    }
+
     public String getBoundaryCoordinates() {
         return boundaryCoordinates;
     }
@@ -344,6 +380,22 @@
         this.returnPointCoordinates = returnPointCoordinates;
     }
 
+    public String getReturnPathCoordinates() {
+        return returnPathCoordinates;
+    }
+
+    public void setReturnPathCoordinates(String returnPathCoordinates) {
+        this.returnPathCoordinates = returnPathCoordinates;
+    }
+
+    public String getReturnPathRawCoordinates() {
+        return returnPathRawCoordinates;
+    }
+
+    public void setReturnPathRawCoordinates(String returnPathRawCoordinates) {
+        this.returnPathRawCoordinates = returnPathRawCoordinates;
+    }
+
     public String getBoundaryPointInterval() {
         return boundaryPointInterval;
     }
@@ -440,6 +492,14 @@
         this.mowingOverlapDistance = mowingOverlapDistance;
     }
 
+    public String getMowingSafetyDistance() {
+        return mowingSafetyDistance;
+    }
+
+    public void setMowingSafetyDistance(String mowingSafetyDistance) {
+        this.mowingSafetyDistance = mowingSafetyDistance;
+    }
+
     @Override
     public String toString() {
         return "Dikuai{" +
@@ -447,9 +507,12 @@
                 ", landNumber='" + landNumber + '\'' +
                 ", landName='" + landName + '\'' +
                 ", boundaryOriginalCoordinates='" + boundaryOriginalCoordinates + '\'' +
+                ", boundaryOriginalXY='" + boundaryOriginalXY + '\'' +
                 ", boundaryCoordinates='" + boundaryCoordinates + '\'' +
                 ", plannedPath='" + plannedPath + '\'' +
                 ", returnPointCoordinates='" + returnPointCoordinates + '\'' +
+                ", returnPathCoordinates='" + returnPathCoordinates + '\'' +
+                ", returnPathRawCoordinates='" + returnPathRawCoordinates + '\'' +
                 ", boundaryPointInterval='" + boundaryPointInterval + '\'' +
                 ", angleThreshold='" + angleThreshold + '\'' +
                 ", intelligentSceneAnalysis='" + intelligentSceneAnalysis + '\'' +

--
Gitblit v1.10.0