From f94b1436d7a28c8e28d010b2cb657ab7c064e353 Mon Sep 17 00:00:00 2001
From: 826220679@qq.com <826220679@qq.com>
Date: 星期日, 28 十二月 2025 20:36:38 +0800
Subject: [PATCH] 修改了导航预览
---
src/zhangaiwu/AddDikuai.java | 70 +++++++++++++++++++++++------------
1 files changed, 46 insertions(+), 24 deletions(-)
diff --git a/src/zhangaiwu/AddDikuai.java b/src/zhangaiwu/AddDikuai.java
index 24452c3..770416f 100644
--- a/src/zhangaiwu/AddDikuai.java
+++ b/src/zhangaiwu/AddDikuai.java
@@ -1516,18 +1516,19 @@
return "";
}
StringBuilder sb = new StringBuilder();
- AoxinglujingNoObstacle.Point last = null;
- for (AoxinglujingNoObstacle.PathSegment segment : segments) {
- // 鍙坊鍔犲壊鑽夊伐浣滄锛岃烦杩囪繃娓℃
- if (segment.isMowing) {
- // 濡傛灉璧风偣涓庝笂涓�涓粓鐐逛笉鍚岋紝娣诲姞璧风偣
- if (last == null || !equalsAoxingPoint(last, segment.start)) {
- appendAoxingPoint(sb, segment.start);
- }
- // 娣诲姞缁堢偣
- appendAoxingPoint(sb, segment.end);
- last = segment.end;
+ AoxinglujingNoObstacle.Point lastEnd = null;
+ boolean firstWritten = false;
+ for (AoxinglujingNoObstacle.PathSegment s : segments) {
+ if (!firstWritten) {
+ appendAoxingPoint(sb, s.start);
+ firstWritten = true;
+ lastEnd = s.start;
+ } else if (lastEnd == null || !equalsAoxingPoint(lastEnd, s.start)) {
+ appendAoxingPoint(sb, s.start);
+ lastEnd = s.start;
}
+ appendAoxingPointWithType(sb, s.end, s.isMowing);
+ lastEnd = s.end;
}
return sb.toString();
}
@@ -1540,18 +1541,19 @@
return "";
}
StringBuilder sb = new StringBuilder();
- YixinglujingNoObstacle.Point last = null;
- for (YixinglujingNoObstacle.PathSegment segment : segments) {
- // 鍙坊鍔犲壊鑽夊伐浣滄锛岃烦杩囪繃娓℃
- if (segment.isMowing) {
- // 濡傛灉璧风偣涓庝笂涓�涓粓鐐逛笉鍚岋紝娣诲姞璧风偣
- if (last == null || !equalsYixingPoint(last, segment.start)) {
- appendYixingPoint(sb, segment.start);
- }
- // 娣诲姞缁堢偣
- appendYixingPoint(sb, segment.end);
- last = segment.end;
+ YixinglujingNoObstacle.Point lastEnd = null;
+ boolean firstWritten = false;
+ for (YixinglujingNoObstacle.PathSegment s : segments) {
+ if (!firstWritten) {
+ appendYixingPoint(sb, s.start);
+ firstWritten = true;
+ lastEnd = s.start;
+ } else if (lastEnd == null || !equalsYixingPoint(lastEnd, s.start)) {
+ appendYixingPoint(sb, s.start);
+ lastEnd = s.start;
}
+ appendYixingPointWithType(sb, s.end, s.isMowing);
+ lastEnd = s.end;
}
return sb.toString();
}
@@ -1571,10 +1573,20 @@
* 娣诲姞 AoxinglujingNoObstacle.Point 鍒板瓧绗︿覆鏋勫缓鍣�
*/
private void appendAoxingPoint(StringBuilder sb, AoxinglujingNoObstacle.Point point) {
+ if (sb.length() > 0) {
+ sb.append(";");
+ }
+ sb.append(String.format(Locale.US, "%.6f,%.6f", point.x, point.y));
+ }
+
+ /**
+ * 娣诲姞 AoxinglujingNoObstacle.Point 鍒板瓧绗︿覆鏋勫缓鍣紙甯︾被鍨嬫爣璁帮級
+ */
+ private void appendAoxingPointWithType(StringBuilder sb, AoxinglujingNoObstacle.Point point, boolean isMowing) {
if (sb.length() > 0) {
sb.append(";");
}
- sb.append(String.format(Locale.US, "%.6f,%.6f", point.x, point.y));
+ sb.append(String.format(Locale.US, "%.2f,%.2f,%s", point.x, point.y, isMowing ? "M" : "T"));
}
/**
@@ -1592,10 +1604,20 @@
* 娣诲姞 YixinglujingNoObstacle.Point 鍒板瓧绗︿覆鏋勫缓鍣�
*/
private void appendYixingPoint(StringBuilder sb, YixinglujingNoObstacle.Point point) {
+ if (sb.length() > 0) {
+ sb.append(";");
+ }
+ sb.append(String.format(Locale.US, "%.6f,%.6f", point.x, point.y));
+ }
+
+ /**
+ * 娣诲姞 YixinglujingNoObstacle.Point 鍒板瓧绗︿覆鏋勫缓鍣紙甯︾被鍨嬫爣璁帮級
+ */
+ private void appendYixingPointWithType(StringBuilder sb, YixinglujingNoObstacle.Point point, boolean isMowing) {
if (sb.length() > 0) {
sb.append(";");
}
- sb.append(String.format(Locale.US, "%.6f,%.6f", point.x, point.y));
+ sb.append(String.format(Locale.US, "%.2f,%.2f,%s", point.x, point.y, isMowing ? "M" : "T"));
}
private void previewMowingPath() {
--
Gitblit v1.10.0