From f784463ab019c1113cf0b31a249e8802b07a57fa Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期二, 16 十二月 2025 15:26:15 +0800
Subject: [PATCH] 保存地图最后位置
---
src/zhuye/MapRenderer.java | 45 +++++++++++++++++++++++++++++++++++----------
1 files changed, 35 insertions(+), 10 deletions(-)
diff --git a/src/zhuye/MapRenderer.java b/src/zhuye/MapRenderer.java
index 8083749..8406d2b 100644
--- a/src/zhuye/MapRenderer.java
+++ b/src/zhuye/MapRenderer.java
@@ -114,14 +114,15 @@
this.mowerUpdateTimer = createMowerTimer();
this.mowerInfoManager = new GecaojiMeg(visualizationPanel, mower);
setupMouseListeners();
- // 浠庨厤缃枃浠惰鍙栦笂娆′繚瀛樼殑缂╂斁姣斾緥
- loadScaleFromProperties();
+ // 浠庨厤缃枃浠惰鍙栦笂娆′繚瀛樼殑缂╂斁姣斾緥鍜岃鍥句腑蹇冨潗鏍�
+ loadViewSettingsFromProperties();
}
/**
- * 浠庨厤缃枃浠惰鍙栫缉鏀炬瘮渚�
+ * 浠庨厤缃枃浠惰鍙栫缉鏀炬瘮渚嬪拰瑙嗗浘涓績鍧愭爣
*/
- private void loadScaleFromProperties() {
+ private void loadViewSettingsFromProperties() {
+ // 鍔犺浇缂╂斁姣斾緥
String scaleValue = Setsys.getPropertyValue(MAP_SCALE_PROPERTY);
if (scaleValue != null && !scaleValue.trim().isEmpty()) {
try {
@@ -140,6 +141,28 @@
// 濡傛灉娌℃湁淇濆瓨鐨勫�硷紝浣跨敤榛樿鍊�
scale = DEFAULT_SCALE;
}
+
+ // 鍔犺浇瑙嗗浘涓績鍧愭爣
+ String viewCenterXValue = Setsys.getPropertyValue("viewCenterX");
+ String viewCenterYValue = Setsys.getPropertyValue("viewCenterY");
+ if (viewCenterXValue != null && !viewCenterXValue.trim().isEmpty()) {
+ try {
+ translateX = Double.parseDouble(viewCenterXValue.trim());
+ } catch (NumberFormatException e) {
+ translateX = 0.0;
+ }
+ } else {
+ translateX = 0.0;
+ }
+ if (viewCenterYValue != null && !viewCenterYValue.trim().isEmpty()) {
+ try {
+ translateY = Double.parseDouble(viewCenterYValue.trim());
+ } catch (NumberFormatException e) {
+ translateY = 0.0;
+ }
+ } else {
+ translateY = 0.0;
+ }
}
/**
@@ -147,7 +170,8 @@
*/
private void saveScaleToProperties() {
Setsys setsys = new Setsys();
- setsys.updateProperty(MAP_SCALE_PROPERTY, String.valueOf(scale));
+ // 淇濈暀2浣嶅皬鏁�
+ setsys.updateProperty(MAP_SCALE_PROPERTY, String.format("%.2f", scale));
}
/**
@@ -1328,7 +1352,7 @@
/**
* 鍒ゆ柇瀹氫綅鐘舵�佹槸鍚︽湁鏁堬紝鍙敤浜庢樉绀烘嫋灏�
- * 鎺ュ彈鐘舵��1锛堝崟鐐瑰畾浣嶏級鍜�4锛堝浐瀹氳В锛�
+ * 鎺ュ彈鐘舵��1锛堝崟鐐瑰畾浣嶏級銆�2锛堢爜宸垎锛夈��3锛堟棤鏁圥PS锛夈��4锛堝浐瀹氳В锛夈��5锛堟诞鐐硅В锛�
*/
private boolean isValidFixForTrail(String fixQuality) {
if (fixQuality == null) {
@@ -1338,14 +1362,15 @@
if (trimmed.isEmpty()) {
return false;
}
- // 鎺ュ彈鐘舵��1锛堝崟鐐瑰畾浣嶏級鍜�4锛堝浐瀹氳В锛�
- if ("1".equals(trimmed) || "4".equals(trimmed)) {
+ // 鎺ュ彈鐘舵��1,2,3,4,5锛堝彧瑕佷笉鏄�0鎴栨棤鏁堢姸鎬侊級
+ if ("1".equals(trimmed) || "2".equals(trimmed) || "3".equals(trimmed) ||
+ "4".equals(trimmed) || "5".equals(trimmed)) {
return true;
}
try {
double value = Double.parseDouble(trimmed);
- // 鎺ュ彈1.0鎴�4.0
- return Math.abs(value - 1.0d) < 1e-6 || Math.abs(value - 4.0d) < 1e-6;
+ // 鎺ュ彈1.0, 2.0, 3.0, 4.0, 5.0锛堝彧瑕佷笉鏄�0锛�
+ return value >= 1.0 && value <= 5.0;
} catch (NumberFormatException ex) {
return false;
}
--
Gitblit v1.10.0