
定位服务已成为越来越热门的技术,并且将来将成为所有移动设备(智能电话,PDA等)的标准. 在定位和导航技术中,一种精度最高,应用最广泛的技术自然就是GPS. 互联网上有很多的资料介绍GPS的原理,本文试图以一种易于程序员从程序员的角度理解的方式来简要介绍GPS定位的基本原理,以期启发做这件事的朋友. GPS开发. 当然,本文不涉及特定的开发技术. 首先介绍数学模型的原因是因为我认为该数学模型可能是程序员关心的问题. 当然,预先声明该模型只是我根据一些GPS数据为程序员总结的简化模型. 细节可能不现实. 有关详细信息,请参阅的GPS解释材料. GPS定位实际上是通过具有已知位置的四颗卫星来确定GPS的位置. 如上图所示,图中的GPS是当前要确定位置的设备,而卫星1、2、3和4是用于此定位的四颗卫星: 简单地通过函数GetLocation()从称为[Position1,d1],[Position2,d2],[Position3,d3],[Position4,d4]的四对数据中查找Location的值.

程序员熟悉的函数调用表示: 当您看到此函数调用时,程序员应该感到兴奋: 这些参数从何而来?该函数如何执行?谁来表演?如果您还没有忘记实体几何,您可能会问: 为什么需要4对参数?然后,让我们一起探索. 实际上,在宇宙中运行的GPS卫星始终都在通过卫星信号广播其当前位置并协调世界信息. 任何GPS都可以通过天线轻松接收此信息,并且可以理解该信息(这实际上是每个GPS芯片的核心功能之一). 这就是这些位置信息的来源. 我们已经知道,每颗GPS卫星都会不懈地广播自己的位置,因此,在发送位置信息时,还将在发送数据包时附加时间戳. GPS接收到数据包后,它将从当前时间中减去时间戳记上的时间(当然,当前时间只能由GPS本身确定),这就是发送数据包所花费的时间在空中. 知道数据包在空中的传输时间,然后乘以其传输速度就是数据包在空中传输的距离,即从卫星到GPS的距离. 数据包通过波传输,则理想速度为光速c,如果传播时间为Ti,则用以下公式表示: 这是di的来源(i = 1,2,3, 4).

此功能是我为解释问题而制作的. 实际上,它可能不存在,但是必须有类似的操作逻辑. 这些算术逻辑可以通过软件来实现,但是实际上它们中的大多数可以由硬件芯片来完成(这也可能是每个GPS芯片的核心功能之一). 根据实体几何知识,在三维空间中,三对[Positioni,di]数据可以确定一个点(实际上可能是两个,但是我们可以通过逻辑判断丢弃一个),为什么需要四对在这里? ?理想情况下,三对就足够了gps定位器的工作原理,这意味着理想情况下只需要三颗卫星即可实现GPS定位. 但实际上,四个是必需的. 因为根据上面的公式,di是由c * Ti计算的,我们知道c的值非常大(理想速度是光速),所以对于时间Ti,很小的误差会放大很多倍因此整个结果无效. 换句话说,在GPS定位中,时间精度非常高. GPS卫星使用铯原子钟来计时,但是我们不可能为每个GPS配备铯原子钟,因为铯原子钟的价格可能已经超过了该GPS设备加上这辆使用GPS的珍贵汽车的价格. 同时gps定位器的工作原理,由于速度c也将受到空气中电离层的影响,因此会产生误差;此外,GPS卫星广播的位置也可能有错误.

其他因素(例如其他因素)也会影响数据的准确性. 简而言之,数据有误. 这些错误可能会导致定位精度降低,或者可能直接导致无效定位. GetLocation(函数)中使用了另一组数据来更正错误. 至于具体细节,我们不需要关心. 只要我们知道使用一组数据,就可以使用一些聪明的算法来消除或减少错误并确保有效定位. 这就是为什么GetLocation()函数必须使用四组数据的原因,这就是为什么必须要定位四颗卫星的原因. 如上所述,当计算位置时,它以空间坐标的形式表示,但是对于GPS设备和应用程序,通常需要使用[经度,纬度,高度]这样的位置信息. 然后我们可以想象在GetLocation()函数返回定位结果之前,可能会执行从空间坐标形式到纬度和经度形式的转换. 我们可能还假设有一个Convert(纬度,经度,空间坐标)函数来执行此转换. 实际上,以上只是定位原理之一,称为单点定位或绝对定位. 它是通过唯一的GPS确定位置的. 当前,最高的定位精度是差分定位或相对定位. 通过添加参考GPS来提高定位精度. 在上面,我们已经基本弄清楚了围绕虚拟GetLocation()函数进行GPS定位的基本数学模型. 对于编程,知道这些就足够了(实际上不知道或不影响编程).

如果好奇心未得到满足,我们将继续学习有关GPS的一些背景知识. (当然是无意义的,是由人类发射的!由人类发射的!)GPS(全球定位系统),称为NAVSTAR GPS(NAVigation卫星定时和测距全球定位系统). GPS是美国国防部开发的天基全天候导航系统. 它用于满足军方在地面或近地空间的通用参考系统中获取位置,速度和时间信息的要求. GPS系统=空间部分+控制部分+用户部分GPS空间部分主要由24颗GPS卫星组成,其中包括21颗工作卫星和3颗备用卫星. 24颗卫星在6个轨道平面上运行,运行时间为12小时. 确保可以在任何时间和任何位置以超过15度的高度角观察到4颗以上的卫星. 主要功能: 发送卫星信号进行导航和定位. 组成: 24颗卫星= 21颗工作卫星+ 3颗备用卫星. GPS控制部分包括1个主控制站,5个检测站和3个注入站. 组成: GPS控制部分=主控制站(1)+监视站(5)+注入站(3)功能: 监视和控制卫星运行,编辑卫星星历(导航消息),维持系统时间.
分布: GPS用户设备包括GPS和相关设备. GPS主要由GPS芯片组成. 例如,车载和车载GPS导航仪,具有内置GPS功能的移动设备以及GPS测量和地图绘制设备都是GPS用户设备. 组成: 主要是GPS功能: 用于接收,跟踪,转换和测量GPS信号的设备,GPS系统的使用者. GPS定位是目前最准确,使用最广泛的定位和导航技术,并且将来将成为每个移动设备的标准设备之一. 现在,中高端只能是手机,并且其中相当一部分已经配备了GPS硬件. 这样,GPS定位的开发技术也将成为主流的常规技术. 本文的目的是使准备进行GPS定位开发的程序员对GPS有一个一般的了解,这可能对编程没有任何直接帮助,但是我想了解GPS的一般工作原理. 对它的工作特性有一个感知上的理解,这仍然对开发有很大的间接好处. 想了解有关GPS定位的具体开发技术
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shumachanpin/article-177501-1.html
无人敢搞独立
自称青龙行于海