From b272034a1fdbfe32b355fc6c264a4c45df107190 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期二, 23 十二月 2025 14:55:03 +0800
Subject: [PATCH] 优化了新增地块功能
---
src/dikuai/ObstacleManagementPage.java | 46 +++++++++++++++++++++++++++++++++++++---------
1 files changed, 37 insertions(+), 9 deletions(-)
diff --git a/src/dikuai/ObstacleManagementPage.java b/src/dikuai/ObstacleManagementPage.java
index 9a9dd25..5a4d6c5 100644
--- a/src/dikuai/ObstacleManagementPage.java
+++ b/src/dikuai/ObstacleManagementPage.java
@@ -1,5 +1,4 @@
package dikuai;
-
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.plaf.basic.BasicScrollBarUI;
@@ -11,11 +10,10 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-
import zhangaiwu.Obstacledge;
import zhuye.Shouye;
import zhuye.Coordinate;
-import bianjie.bianjieguihua2;
+import bianjie.Bianjieyouhuatoxy;
/**
* 闅滅鐗╃鐞嗛〉闈� - UI浼樺寲鐗�
@@ -799,14 +797,13 @@
return null;
}
- // 璁剧疆鍒板叏灞�鍧愭爣鍒楄〃
- Coordinate.coordinates.clear();
- Coordinate.coordinates.addAll(coordinateList);
+ // 鏋勫缓杈圭晫瀛楃涓诧紝鏍煎紡涓� "(lat1,lon1,alt1;lat2,lon2,alt2;...)"
+ String boundaryStr = buildBoundaryStringForOptimization(coordinateList);
- // 璋冪敤 bianjieguihua2 绠楁硶鐢熸垚浼樺寲鍚庣殑澶氳竟褰㈠潗鏍�
- String optimizedCoordsStr = bianjieguihua2.processCoordinateListAuto(baseStation);
+ // 璋冪敤 Bianjieyouhuatoxy.optimizeBoundary 鏂规硶鐢熸垚浼樺寲鍚庣殑澶氳竟褰㈠潗鏍�
+ String optimizedCoordsStr = Bianjieyouhuatoxy.optimizeBoundary(baseStation, boundaryStr);
- if (optimizedCoordsStr == null || optimizedCoordsStr.trim().isEmpty()) {
+ if (optimizedCoordsStr == null || optimizedCoordsStr.trim().isEmpty() || optimizedCoordsStr.startsWith("ERROR")) {
return null;
}
@@ -842,6 +839,34 @@
}
/**
+ * 鏋勫缓鐢ㄤ簬浼樺寲鐨勮竟鐣屽瓧绗︿覆锛屾牸寮忎负 "(lat1,lon1,alt1;lat2,lon2,alt2;...)"
+ * 鍏朵腑lat鍜宭on鏄害鍒嗘牸寮忥紙DMM鏍煎紡锛夛紝渚嬪 "3949.89151752"
+ */
+ private String buildBoundaryStringForOptimization(List<Coordinate> coordinates) {
+ if (coordinates == null || coordinates.isEmpty()) {
+ return "()";
+ }
+ StringBuilder sb = new StringBuilder("(");
+ java.text.DecimalFormat elevationFormat = new java.text.DecimalFormat("0.00");
+ for (int i = 0; i < coordinates.size(); i++) {
+ Coordinate coord = coordinates.get(i);
+ // Coordinate绫讳腑鐨刧etLatitude()鍜実etLongitude()宸茬粡杩斿洖搴﹀垎鏍煎紡锛圖MM鏍煎紡锛�
+ String latDMM = coord.getLatitude();
+ String lonDMM = coord.getLongitude();
+ double elevation = coord.getElevation();
+
+ if (i > 0) {
+ sb.append(";");
+ }
+ sb.append(latDMM).append(",")
+ .append(lonDMM).append(",")
+ .append(elevationFormat.format(elevation));
+ }
+ sb.append(")");
+ return sb.toString();
+ }
+
+ /**
* 鏍煎紡鍖栧害鍒嗘牸寮忓潗鏍�
* @param degreeMinute 搴﹀垎鍊硷紝濡� 2324.200273 琛ㄧず 23搴�24.200273鍒�
* @return 鏍煎紡鍖栫殑瀛楃涓�
@@ -986,3 +1011,6 @@
+
+
+
--
Gitblit v1.10.0