GPS/北斗数据解析之JAVA实现

一般GPS/北斗数据解析都是基于C语言程序的,这里给出JAVA版本的实现供同学们参考。

先定义一个数据类

class GPSdata {

        float latitude; // + East, - West

        float longitude; // + North, - South

        float altitude; // height

        float speed; // speed

        int time; // hhmmss

        int date; // ddmmyy

}

private GPSdata mGPSdata;

    1.解析GNRMC数据,一般双模为GNRMC,单模为GPRMC

	private void getGnrmcValue(String rmcString) {
		String[] str = rmcString.split(",");
		if (str[1] == null || !isFloat(str[3]) || !isFloat(str[5])) {
			Log.i(TAG, "GNRMC data invalid");
			return;
		}
		if (str[1].indexOf(".") > 0) {
			mGPSdata.time = Math.round(Float.valueOf(str[1]));// hhmmss
		}
		if (str[3].indexOf(".") > 0) {
			mGPSdata.latitude = Float.valueOf(str[5]);// 纬度
			if(mGPSdata.latitude<-90 || mGPSdata.latitude>90){
				mGPSdata.latitude = 0;
			}
			ydu = (int) mGPSdata.latitude / 100;
			yfen = (float) mGPSdata.latitude - ydu * 100;
			if (str[5] == "W")// 默认东经,西经-
				ydu *= -1;
		}
		if (str[5].indexOf(".") > 0) {
			mGPSdata.longitude = Float.valueOf(str[3]);// 经度
			if(mGPSdata.longitude<-180 || mGPSdata.longitude>180){
				mGPSdata.longitude = 0;
			}
			xdu = (int) mGPSdata.longitude / 100;
			xfen = (float) mGPSdata.longitude - xdu * 100;
			if (str[4] == "S")// 默认北纬,南纬-
				xdu *= -1;
		}	
		mGPSdata.date = Math.round(Float.valueOf(str[9]));// ddmmyy
	}

2.解析GNGGA数据

	private void getGnggaValue(String ggaString) {
		String[] str = ggaString.split(",");
		if (str[2] == null || !isFloat(str[2]) || !isFloat(str[4])
				|| !isFloat(str[9])) {
			Log.i(TAG, "GNGGA data invalid");
			return;
		}
	
		if (str[9].indexOf(".") > 0) {
			mGPSdata.altitude = Float.valueOf(str[9]);// 高程
		}	
		if(mGPSdata.altitude>9999.9 || mGPSdata.altitude<-9999.9){
			mGPSdata.altitude = 0;// 无效值
		}
	}

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: atk1218-bd是一款集成了GPS北斗双模定位功能的模块。它可以通过串口或I2C接口与主控板进行通信,实现定位、导航等功能。该模块具有高灵敏度、低功耗、高精度等特点,适用于车载导航、物流追踪、智能家居等领域。 ### 回答2: ATK1218-BD是一款集成了GPS北斗双模的模块。GPS北斗是全球定位系统(GNSS)中最常用的两种卫星导航系统,具有相似的功能和原理,可以用于定位、导航和时间同步等应用。 ATK1218-BD模块具有高度集成化的特点,尺寸小巧,功耗低,适用于各种物联网设备的集成。它支持GPS北斗双模,并且能够同时接收并处理来自两个系统的定位信号,提供更高的精度和可靠性。 该模块具有强大的定位能力,能够在复杂的环境中实现高精度定位。通过使用多种定位算法和增强技术,如差分定位和轨道预报,ATK1218-BD模块可以提供厘米级甚至亚米级的精度。 此外,ATK1218-BD模块支持多种通信接口,例如UART和I2C,方便与主控芯片或其他设备的连接和通信。它还具有多种工作模式可供选择,包括连续定位模式和省电模式,可以根据不同的需求进行灵活配置。 总之,ATK1218-BD是一款功能强大、性能稳定的GPS/北斗模块,适用于各种需要定位导航功能的物联网设备,如智能车辆、智能家居和物流追踪等。它的高集成度、精准度和灵活性使其成为物联网领域中的理想选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值