From 9d171a3c3a57ea54454d7e9d64dec213aa885a2c Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期三, 17 十二月 2025 15:26:31 +0800
Subject: [PATCH] 障碍物预览增加了序号

---
 src/zhuye/Shouye.java |   37 +++++++++++++++++++++++++++----------
 1 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/src/zhuye/Shouye.java b/src/zhuye/Shouye.java
index 1aa16f7..44398ed 100644
--- a/src/zhuye/Shouye.java
+++ b/src/zhuye/Shouye.java
@@ -320,7 +320,7 @@
 		}
 		// 鍏抽棴妯″紡鏃朵笉闇�瑕佸仛浠讳綍鎿嶄綔锛岀敤鎴峰凡缁忓彲浠ヨ嚜鐢辩Щ鍔ㄥ湴鍥�
 		
-		// 鏇存柊宸ュ叿鎻愮ず
+		// 鏇存柊鍥炬爣鏄剧ず锛堥噸缁樹互鍒囨崲鍥炬爣锛�
 		if (visualizationPanel != null) {
 			visualizationPanel.repaint();
 		}
@@ -564,14 +564,16 @@
 
 		// 鍙鍖栧尯鍩� - 浣跨敤MapRenderer杩涜缁樺埗
 		visualizationPanel = new JPanel() {
-			private ImageIcon gecaojiIcon = null;
+			private ImageIcon gecaojiIcon1 = null;  // 榛樿鍥炬爣
+			private ImageIcon gecaojiIcon2 = null;  // 浠ュ壊鑽夋満涓轰腑蹇冩ā寮忓浘鏍�
 			private static final int GECAOJI_ICON_X = 37;
 			private static final int GECAOJI_ICON_Y = 10;
 			private static final int GECAOJI_ICON_SIZE = 20;
 			
 			{
 				// 鍔犺浇鍓茶崏鏈哄浘鏍囷紝澶у皬20x20鍍忕礌
-				gecaojiIcon = loadScaledIcon("image/gecaoji.png", GECAOJI_ICON_SIZE, GECAOJI_ICON_SIZE);
+				gecaojiIcon1 = loadScaledIcon("image/gecaojishijiao1.png", GECAOJI_ICON_SIZE, GECAOJI_ICON_SIZE);
+				gecaojiIcon2 = loadScaledIcon("image/gecaojishijiao2.png", GECAOJI_ICON_SIZE, GECAOJI_ICON_SIZE);
 			}
 			
 			/**
@@ -607,11 +609,15 @@
 				if (isMowerOutsideBoundary && warningIconVisible) {
 					// 缁樺埗绾㈣壊涓夎褰㈣鍛婂浘鏍囷紙甯﹀徆鍙凤級
 					drawWarningIcon(g, GECAOJI_ICON_X, GECAOJI_ICON_Y, GECAOJI_ICON_SIZE);
-				} else if (gecaojiIcon != null) {
-					// 缁樺埗姝e父鐨勫壊鑽夋満鍥炬爣
-					// 姘村钩鏂瑰悜涓庨�熷害鎸囩ず鍣ㄥ榻愶紙x=37锛�
-					// 鍨傜洿鏂瑰悜涓庡崼鏄熺姸鎬佸浘鏍囧榻愶紙y=10锛岄�熷害鎸囩ず鍣ㄩ潰鏉块《閮ㄨ竟璺�10鍍忕礌锛屼娇鍥炬爣涓績瀵归綈锛�
-					g.drawImage(gecaojiIcon.getImage(), GECAOJI_ICON_X, GECAOJI_ICON_Y, null);
+				} else {
+					// 鏍规嵁妯″紡閫夋嫨涓嶅悓鐨勫浘鏍�
+					ImageIcon iconToDraw = centerOnMowerMode ? gecaojiIcon2 : gecaojiIcon1;
+					if (iconToDraw != null) {
+						// 缁樺埗鍓茶崏鏈哄浘鏍�
+						// 姘村钩鏂瑰悜涓庨�熷害鎸囩ず鍣ㄥ榻愶紙x=37锛�
+						// 鍨傜洿鏂瑰悜涓庡崼鏄熺姸鎬佸浘鏍囧榻愶紙y=10锛岄�熷害鎸囩ず鍣ㄩ潰鏉块《閮ㄨ竟璺�10鍍忕礌锛屼娇鍥炬爣涓績瀵归綈锛�
+						g.drawImage(iconToDraw.getImage(), GECAOJI_ICON_X, GECAOJI_ICON_Y, null);
+					}
 				}
 			}
 			
@@ -3504,7 +3510,11 @@
 			String obstacles,
 			String plannedPath,
 			Runnable returnAction) {
-		if (mapRenderer == null || !isMeaningfulValue(plannedPath)) {
+		if (mapRenderer == null) {
+			return false;
+		}
+		// 鍏佽娌℃湁璺緞鐨勯瑙堬紙渚嬪闅滅鐗╅瑙堬級锛屽彧瑕佹湁杩斿洖鍥炶皟鍗冲彲
+		if (!isMeaningfulValue(plannedPath) && returnAction == null) {
 			return false;
 		}
 
@@ -3531,10 +3541,17 @@
 
 		mapRenderer.setCurrentBoundary(boundary, landNumber, landName);
 		mapRenderer.setCurrentObstacles(obstacles, landNumber);
-		mapRenderer.setCurrentPlannedPath(plannedPath);
+		// 鍙湁鍦ㄦ湁璺緞鏃舵墠璁剧疆璺緞
+		if (isMeaningfulValue(plannedPath)) {
+			mapRenderer.setCurrentPlannedPath(plannedPath);
+		} else {
+			mapRenderer.setCurrentPlannedPath(null);
+		}
 		mapRenderer.clearHandheldBoundaryPreview();
 		mapRenderer.setBoundaryPointSizeScale(1.0d);
 		mapRenderer.setBoundaryPointsVisible(isMeaningfulValue(boundary));
+		// 鍚敤闅滅鐗╄竟鐣岀偣鏄剧ず
+		mapRenderer.setObstaclePointsVisible(isMeaningfulValue(obstacles));
 
 		String displayName = isMeaningfulValue(landName) ? landName : landNumber;
 		updateCurrentAreaName(displayName);

--
Gitblit v1.10.0