zoukankan      html  css  js  c++  java
  • 3,gps定位原理及格式

    1 gps定位原理

    gps是美国开发的一套实时定位系统。在导航应用中,重点关注的是用户的gps接受机,根据接收机的数据从而获取当前的位置和时间信息。大概了解下定位原理:

    由于我们是用于上位机的开发,接收器遵守的是NMEA0183协议,某种程度上我们通过协议直接得到当前所在的经纬度信息。
    首先我们必须要了解的是地球的参考坐标系,以便于我们使用地图时把得到的坐标转换成导航所使用的坐标系。NMEA0183使用的参考坐标系是WGS-84坐标系。
    其次,必须了解三颗卫星可以定位,另外一颗卫星是为了消除误差,所以我们通常需要4颗卫星来进行定位。由于现在使用的gps芯片是遵守nmea0183协议,所以会直接给出当前的经纬度信息,所以具体的算法请参考相关文档。

    2 gps数据获取

    gps信息通常由读取串口而获得。由于会不停的从串口得到gps信息,所以在导航系统中需要另外开一个线程去获取数据。
    另外在不同的系统中我们需要采取不同的策略去获取gps数据,例如在wince中我们可以直接读取串口信息,而在Android和ios中我们可以直接通过其系统上层API直接传递gps信息给导航引擎。

    3 gps数据分析

    通常我们从串口会读出以下数据:
    $GPGGA,235949.042,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*45  
    $GPGLL,0000.0000,N,00000.0000,E,235949.042,V,N*47  
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E  
    $GPGSV,1,1,00*79  
    $GPRMC,235949.042,V,0000.0000,N,00000.0000,E,,,140209,,,N*7E  
    $GPVTG,,T,,M,,N,,K,N*2C 
    所以必须分析以下协议
    $GPGGA、$GPGLL、$GPGSA、$GPGSV、$GPRMC、$GPVTG。
    具体协议分析可以参考相关资料。
    一般来说,我们需要获取当前的经纬度信息,当前时间。另外为了给客户展示当前的gps状态,需要获取当前接受到卫星的颗数,用来判断信号的强弱等等。
  • 相关阅读:
    课后作业
    课后作业
    课后作业3
    课后作业
    课后作业
    课后作业
    java 加减法2
    java 出计算题
    Java web 登录界面
    构建之法读后感
  • 原文地址:https://www.cnblogs.com/273809717/p/5146950.html
Copyright © 2011-2022 走看看