From 5b685e9066ccfbc432c29739b5524f1d42a20891 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期一, 22 十二月 2025 19:37:30 +0800
Subject: [PATCH] 进一步优化边界管理页面功能
---
src/dikuai/Dikuanbianjipage.java | 56 +++++++++++++++++++++-----------------------------------
1 files changed, 21 insertions(+), 35 deletions(-)
diff --git a/src/dikuai/Dikuanbianjipage.java b/src/dikuai/Dikuanbianjipage.java
index bceb6c2..f3d7ff8 100644
--- a/src/dikuai/Dikuanbianjipage.java
+++ b/src/dikuai/Dikuanbianjipage.java
@@ -105,43 +105,17 @@
JOptionPane.showMessageDialog(this, "鏈壘鍒板湴鍧椾俊鎭紝鏃犳硶浼樺寲", "閿欒", JOptionPane.ERROR_MESSAGE);
return;
}
- String baseStation = dikuai.getBaseStationCoordinates();
- if (baseStation == null || baseStation.trim().isEmpty() || "-1".equals(baseStation)) {
- JOptionPane.showMessageDialog(this, "鍩虹珯鍧愭爣鏈缃紝鏃犳硶浼樺寲", "閿欒", JOptionPane.ERROR_MESSAGE);
- return;
- }
- // 鍑嗗 Coordinate 鍒楄〃
- String originalCoords = dikuai.getBoundaryOriginalCoordinates();
- if (originalCoords == null || originalCoords.trim().isEmpty() || "-1".equals(originalCoords)) {
- JOptionPane.showMessageDialog(this, "鍘熷杈圭晫鍧愭爣涓虹┖锛屾棤娉曚紭鍖�", "閿欒", JOptionPane.ERROR_MESSAGE);
+ // 浠庡師濮嬭竟鐣孹Y鍧愭爣鏂囨湰鍩熻幏鍙栬緭鍏�
+ String inputXY = rawXYArea.getText();
+ if (inputXY == null || inputXY.trim().isEmpty() || "-1".equals(inputXY.trim())) {
+ JOptionPane.showMessageDialog(this, "鍘熷杈圭晫XY鍧愭爣涓虹┖锛屾棤娉曚紭鍖�", "閿欒", JOptionPane.ERROR_MESSAGE);
return;
}
try {
- // 瑙f瀽鍘熷鍧愭爣鍒� Coordinate.coordinates
- List<Coordinate> coords = new ArrayList<>();
- String[] points = originalCoords.split(";");
- for (String point : points) {
- String[] parts = point.split(",");
- if (parts.length >= 2) {
- double lonDecimal = Double.parseDouble(parts[0].trim());
- double latDecimal = Double.parseDouble(parts[1].trim());
- double alt = parts.length > 2 ? Double.parseDouble(parts[2].trim()) : 0.0;
-
- // 灏嗗崄杩涘埗搴﹁浆鎹负搴﹀垎鏍煎紡瀛楃涓�
- String latDM = decimalToDegreeMinute(latDecimal);
- String lonDM = decimalToDegreeMinute(lonDecimal);
- String latDir = latDecimal >= 0 ? "N" : "S";
- String lonDir = lonDecimal >= 0 ? "E" : "W";
-
- coords.add(new Coordinate(latDM, latDir, lonDM, lonDir, alt));
- }
- }
- Coordinate.coordinates = coords;
-
- // 璋冪敤浼樺寲绠楁硶
- String optimized = bianjieguihua2.processCoordinateListAuto(baseStation);
+ // 璋冪敤浼樺寲绠楁硶锛堢洿鎺ヤ娇鐢╔Y鍧愭爣瀛楃涓诧級
+ String optimized = bianjieguihua2.optimizeBoundaryXYString(inputXY.trim());
optTextArea.setText(optimized);
JOptionPane.showMessageDialog(this, "杈圭晫浼樺寲瀹屾垚", "鎻愮ず", JOptionPane.INFORMATION_MESSAGE);
} catch (Exception ex) {
@@ -160,11 +134,22 @@
// 鑾峰彇褰撳墠浼樺寲鍚庣殑杈圭晫
String currentOptimized = optTextArea.getText();
+ // 淇濆瓨鍦板潡缂栧彿锛岀敤浜庤繑鍥炲洖璋�
+ final String targetLandNumber = dikuai.getLandNumber();
+
// 璋冪敤棣栭〉鏄剧ず棰勮
SwingUtilities.invokeLater(() -> {
Shouye.showBoundaryPreview(dikuai, currentOptimized, () -> {
- // 杩斿洖鍥炶皟锛氶噸鏂版墦寮�姝ら〉闈�
- new Dikuanbianjipage(getOwner(), getTitle(), currentOptimized, dikuai).setVisible(true);
+ // 杩斿洖鍥炶皟锛氶噸鏂版墦寮�姝ら〉闈紝浠庡湴鍧楀璞¢噸鏂拌鍙栨渶鏂扮殑杈圭晫鍧愭爣
+ // 浠� dikuaiMap 閲嶆柊鑾峰彇鍦板潡瀵硅薄锛堢‘淇濊幏鍙栧埌鏈�鏂扮殑鍊硷級
+ Dikuai updatedDikuai = Dikuai.getDikuai(targetLandNumber);
+ if (updatedDikuai != null) {
+ String latestBoundary = updatedDikuai.getBoundaryCoordinates();
+ new Dikuanbianjipage(getOwner(), getTitle(), latestBoundary, updatedDikuai).setVisible(true);
+ } else {
+ // 濡傛灉鑾峰彇澶辫触锛屼娇鐢ㄥ綋鍓嶅��
+ new Dikuanbianjipage(getOwner(), getTitle(), currentOptimized, dikuai).setVisible(true);
+ }
});
});
});
@@ -189,7 +174,8 @@
Dikuai.saveToProperties();
this.result = trimmed;
JOptionPane.showMessageDialog(this, "鍦板潡杈圭晫鍧愭爣宸叉洿鏂�", "鎴愬姛", JOptionPane.INFORMATION_MESSAGE);
- dispose();
+ // 涓嶉��鍑洪〉闈紝鍙洿鏂版樉绀�
+ // dispose(); // 绉婚櫎閫�鍑洪�昏緫
});
closeBtn.addActionListener(e -> dispose());
--
Gitblit v1.10.0