From a541fbdc8812337de120aad3792a2033a5dd7afe Mon Sep 17 00:00:00 2001
From: 张世豪 <979909237@qq.com>
Date: 星期四, 25 十二月 2025 12:23:01 +0800
Subject: [PATCH] 优化了首页

---
 src/zhuye/Coordinate.java |   26 +++++++++++++++++++++-----
 1 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/src/zhuye/Coordinate.java b/src/zhuye/Coordinate.java
index d15579f..644953d 100644
--- a/src/zhuye/Coordinate.java
+++ b/src/zhuye/Coordinate.java
@@ -79,15 +79,20 @@
 
 
 	/**
-	 * 瑙f瀽GNGGA鏁版嵁杩斿洖Coordinate瀵硅薄鍒楄〃锛堝寮虹増锛屽寘鍚珮绋嬫暟鎹級
+	 * 瑙f瀽GNGGA/GPGGA/GBGGA鏁版嵁杩斿洖Coordinate瀵硅薄鍒楄〃锛堝寮虹増锛屽寘鍚珮绋嬫暟鎹級
 	 */
 	public static void parseGNGGAToCoordinateList(String gnggaData) {	
 		if (!isStartSaveGngga || gnggaData == null || gnggaData.isEmpty()) {
 			return;
 		}
 
-		String[] records = gnggaData.split("\\$GNGGA");
+		String cleaned = gnggaData.trim();
+		// 浣跨敤姝e垯鍒嗗壊鏀寔澶氱澶撮儴
+		String[] records = cleaned.split("\\$(GN|GP|GB)GGA");
 		for (String record : records) {
+			if (record == null || record.trim().isEmpty()) {
+				continue;
+			}
 			Coordinate coord = parseSingleGnggaRecord(record, false);
 			if (coord != null) {
 				coordinates.add(coord);
@@ -108,9 +113,19 @@
 			return null;
 		}
 
-		int markerIndex = cleaned.indexOf("$GNGGA");
+		int markerIndex = -1;
+		String[] headers = {"$GNGGA", "$GPGGA", "$GBGGA"};
+		
+		// 鎵惧埌鏈�鏃╁嚭鐜扮殑澶撮儴
+		for (String header : headers) {
+			int idx = cleaned.indexOf(header);
+			if (idx >= 0 && (markerIndex == -1 || idx < markerIndex)) {
+				markerIndex = idx;
+			}
+		}
+
 		String record = markerIndex >= 0
-				? cleaned.substring(markerIndex + "$GNGGA".length())
+				? cleaned.substring(markerIndex + 6) // 鎵�鏈夊ご閮ㄩ暱搴﹀潎涓�6
 				: cleaned;
 
 		Coordinate coordinate = parseSingleGnggaRecord(record, true);
@@ -153,7 +168,8 @@
 				return null;
 			}
 
-			if (fixQuality != 4) {
+			// 淇敼涓哄厑璁搁潪RTK鍥哄畾瑙d篃鑳芥樉绀轰綅缃�(鍙涓嶆槸鏃犳晥瀹氫綅0鍗冲彲)
+			if (fixQuality == 0) {
 				return null;
 			}
 

--
Gitblit v1.10.0