From 5d6d890cfd10466d5d14ff5177adcc888baaa0e4 Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期三, 17 十二月 2025 17:46:13 +0800
Subject: [PATCH] 新增了边界距离显示优化了设置页面布局
---
src/zhuye/Shouye.java | 42 ++++++++++++++++++++++++++++++++----------
1 files changed, 32 insertions(+), 10 deletions(-)
diff --git a/src/zhuye/Shouye.java b/src/zhuye/Shouye.java
index 1aa16f7..56c4e39 100644
--- a/src/zhuye/Shouye.java
+++ b/src/zhuye/Shouye.java
@@ -320,7 +320,7 @@
}
// 鍏抽棴妯″紡鏃朵笉闇�瑕佸仛浠讳綍鎿嶄綔锛岀敤鎴峰凡缁忓彲浠ヨ嚜鐢辩Щ鍔ㄥ湴鍥�
- // 鏇存柊宸ュ叿鎻愮ず
+ // 鏇存柊鍥炬爣鏄剧ず锛堥噸缁樹互鍒囨崲鍥炬爣锛�
if (visualizationPanel != null) {
visualizationPanel.repaint();
}
@@ -452,6 +452,11 @@
}
}
mapRenderer.setIdleTrailDurationSeconds(durationSeconds);
+
+ // 搴旂敤杈圭晫璺濈鏄剧ず璁剧疆
+ Setsys setsys = new Setsys();
+ setsys.initializeFromProperties();
+ mapRenderer.setBoundaryLengthVisible(setsys.isBoundaryLengthVisible());
}
private void createHeaderPanel() {
@@ -564,14 +569,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 +614,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 +3515,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 +3546,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