| | |
| | | return objectMapper.readValue(jsonStr, ResponseData.class); |
| | | } |
| | | |
| | | /** |
| | | * 解析GGA格式的GPS数据(可选功能) |
| | | * @param ggaString GGA格式字符串 |
| | | * @return GGAData对象 |
| | | */ |
| | | /*public static GPSData.GGAData parseGGA(String ggaString) { |
| | | // 移除可能的校验和部分 |
| | | String cleanString = ggaString.split("\\*")[0]; |
| | | String[] fields = cleanString.split(","); |
| | | |
| | | if (fields.length < 15) { |
| | | return null; |
| | | } |
| | | |
| | | GPSData.GGAData ggaData = new GPSData.GGAData(); |
| | | |
| | | try { |
| | | ggaData.setUtcTime(fields[1]); |
| | | ggaData.setLatitude(fields[2]); |
| | | ggaData.setLatitudeDir(fields[3]); |
| | | ggaData.setLongitude(fields[4]); |
| | | ggaData.setLongitudeDir(fields[5]); |
| | | |
| | | if (!fields[6].isEmpty()) { |
| | | ggaData.setGpsQuality(Integer.parseInt(fields[6])); |
| | | } |
| | | |
| | | if (!fields[7].isEmpty()) { |
| | | ggaData.setSatellites(Integer.parseInt(fields[7])); |
| | | } |
| | | |
| | | if (!fields[8].isEmpty()) { |
| | | ggaData.setHdop(Double.parseDouble(fields[8])); |
| | | } |
| | | |
| | | if (!fields[9].isEmpty()) { |
| | | ggaData.setAltitude(Double.parseDouble(fields[9])); |
| | | } |
| | | |
| | | ggaData.setAltitudeUnit(fields[10]); |
| | | |
| | | if (!fields[11].isEmpty()) { |
| | | ggaData.setGeoidSep(Double.parseDouble(fields[11])); |
| | | } |
| | | |
| | | ggaData.setGeoidSepUnit(fields[12]); |
| | | |
| | | if (fields.length > 13) { |
| | | ggaData.setAge(fields[13]); |
| | | } |
| | | |
| | | if (fields.length > 14) { |
| | | ggaData.setStationId(fields[14]); |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | // 解析异常,返回部分解析的数据或null |
| | | System.err.println("解析GGA数据时出错: " + e.getMessage()); |
| | | } |
| | | |
| | | return ggaData; |
| | | }*/ |
| | | |
| | | /** |
| | | * 将消息对象转换为JSON字符串 |