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状态,需要获取当前接受到卫星的颗数,用来判断信号的强弱等等。
时间: 2024-08-04 14:15:57

3,gps定位原理及格式的相关文章

【转】GPS定位原理

一.距离测定原理 1.伪距测量 伪距测量是利用全球卫星定位系统进行导航定位的最基本的方法,其基本原理是:在某一瞬间利用GPS接收机同时测定至少四颗卫星的伪距,根据已知的卫星位置 和伪距观测值,采用距离交会法求出接收机的三维坐标和时钟改正数.伪距定位法定一次位的精度并不高,但定位速度快,经几小时的定位也可达米级的若再增加观 测时间,精度还可以提高. 每一卫星播发一个伪随机测距码信号,该信号大约每1毫秒播发一次,接收仪同时复制出一个同样结构的信号并与接收到的卫星信号进行比较,由信号的延迟时间(dT)

Gps定位和wifi定位和基站定位的比较

现在手机定位的方式是:Gps定位,wifi定位,基站定位 Gps定位的前提,手机开启Gps定位模块,在室外,定位的精度一般是几米的范围 wifi定位的前提,手机要开启wifi,连不连上wifi热点都可以,定位的精度一般是几十米的范围 基站定位的前提,手机必须插入sim卡并且有网络信号,定位的精度一般是几百米的范围 Gps定位原理 : 采用全球定位卫星 wifi定位的原理 :假如你的家里有个自己设立的无线路由器,经常开机,你的邻居正在阳台上用手机玩谷歌地图,恰好他手机的wifi是开着的,不过没有连

ELF格式的重定位原理分析

前面有篇文章分析了ELF格式,也只是让我们对目标文件有了一个大概的了解,并没有说明一个十分重要的问题:重定位,今天重新看了下重定位的资料,终于弄懂了重定位的过程,下面来做一个分析. 我们将使用下面两个源代码中的文件a.c和b.c展开分析: //a.c extern int shared; int main() { int a=100; swap(&a,&shared); } //b.c int shared=1; void swap(int *a,int *b) { *a^=*b^=*a^

wifi定位原理

wifi定位和手机基站定位类别似,两者都需要收集wifi位置信息接入点. 其实WIFI奇妙,它靠的是侦測附近周围全部的无线网路基地台 (WiFi Access Point) 的 MAC Address (类似 10-78-D2-93-58-C2 这种格式),去比对资料库中该 MAC Address 的座标,交叉连集出所在地. 此法尚须有网路连线做资料库查询才干完毕定位. 最早开发这个技术的是Skyhook公司. 这个技术的原理是利用以下三条事实: wifi热点(也就是AP,或者无线路由器)越来越

如何利用【百度地图API】进行定位?非GPS定位

原文:如何利用[百度地图API]进行定位?非GPS定位 如果你可以上网,如果你有火狐浏览器,那么恭喜你.你能很容易使用以下代码进行定位! ------------------------------------------------------------------------------- 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富.交互性强的地图应用程序. 其中,有Geolocation这个类,可以帮助你进行定位. 它的原理是,利用

PHP利用百度地图API进行IP定位和GPS定位

最近在做一个手机端的webapp地图应用,而核心内容当然是定位了,但是定位的话有几种方式,IP定位,GPS定位,基站定位(这个貌似webapp用不了), 那么剩下核心的gps定位和ip定位了,我们知道,html5有定位API,但是该API拿到的GPS数据是硬件坐标,无法直接显示在地图上. 后来上百度LBS云看到有地图IP定位API和GPS坐标转换API,地址:http://developer.baidu.com/map/ 百度地图API的调用需要申请KEY,这里就不具体介绍了,直接贴上本人写了两

北斗系统基础知识2(北斗一代定位原理详述)

需求说明:知识储备 内容       :北斗系统起源及工作原理 来自       :时间的诗 原文:http://bbs.tianya.cn/post-funinfo-3117078-1.shtml 1 定位系统中的老大(GPS的定位原理) 2003年5月25日,随着第三颗"北斗"1号导航定位卫星发射升空,我国自行研制的"北斗"(一代)卫星导航定位系统正式建成.这使我国成为世界上为数不多的自主建立卫星导航定位系统的国家之一.那么,这个系统有什么功能?它与我们熟悉的美

北斗系统基础知识1(北斗系统定位原理说明“图文详述”)

需求说明:知识储备 内容       :北斗系统起源及工作原理 来自       :时间的诗 原文:http://www.bingdun.com/news/bingdun/3252.htm 从来没有那个事物像 GPS 那样改变了人类的生活,你能想象没有 GPS 的生活情境吗?打开 GPS,地球上空的卫星在几分钟之内就会锁定你的位置,它还会告诉你行进的速度.所处位置的海拔高度--一切的一切,在习以为常之后,你是否觉得都这些是理所当然? 全球定位系统(GPS),最早由美国政府与 70 年代建设,前身

GPS定位默认时间设定方案

从可行性.适配性角度给出以下方案.基于局部性原理:我们在生活中会发现一些普遍规律,重复现象往往具有局部性.比如,你跟一个人说话,你说了一句话以后,往往很快会重复一遍,但是你不会隔了5个小时又重复这句话,到处都是这种例子,比如你在编程的时候,你定义了一个变量int nCount,这个nCount一般你很快就会用到,不会离得很远.由于我们的软件有GPS自动上报功能,且自动上报的时间不长,我们也可以认为当前的定位环境和最后一次自动上报的定位环境是相似的,那么能获取到GPS的耗时也是相似的,我们将最后一