| | |
| | | return; |
| | | } |
| | | |
| | | String[] records = gnggaData.split("\\$GNGGA"); |
| | | for (String record : records) { |
| | | // 处理完整的GNGGA数据(可能包含$GNGGA前缀) |
| | | String cleaned = gnggaData.trim(); |
| | | if (cleaned.startsWith("$GNGGA")) { |
| | | // 如果数据以$GNGGA开头,直接解析 |
| | | String record = cleaned.substring("$GNGGA".length()); |
| | | Coordinate coord = parseSingleGnggaRecord(record, false); |
| | | if (coord != null) { |
| | | coordinates.add(coord); |
| | | } |
| | | } else { |
| | | // 处理可能包含多个$GNGGA记录的情况 |
| | | String[] records = cleaned.split("\\$GNGGA"); |
| | | for (String record : records) { |
| | | if (record == null || record.trim().isEmpty()) { |
| | | continue; // 跳过空字符串(split产生的第一个元素可能是空的) |
| | | } |
| | | Coordinate coord = parseSingleGnggaRecord(record, false); |
| | | if (coord != null) { |
| | | coordinates.add(coord); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |