位置服务已经成为越来越热的一门技术, 也将成为以后所有移动设备 (智能手 机、 掌上电脑等) 的标配。而定位导航技术中,目前精度最高、应用最广泛的,自然非 GPS 莫属了。网络上介绍 GPS 原理的专业资料很多,而本文试图从编程人 员的角度出发,以一种程序员易于理解的方式 来简单介绍一下 GPS 定位的基本原理,希望对做 GPS 开发的朋友有所启发。当然,本文并没有涉 及具体的开发方面 的技术。 一、GPS 定位数学模型 之所以先介绍数学模型, 是因为我认为这个数学模型可能是程序员比较关心的问题。 当然事 先声明, 这个模型只是我根据一些 GPS 资料总专为程序员总结出来的一个简化模型, 细节方面可 能并不符合实际,想了解具体细节请参考专业的 GPS 讲解资料。 GPS 定位,实际上就是通过四颗已知位置的卫星来确定 GPS 接收器的位置。 如上图所示,图中的 GPS 接收器为当前要确定位置的设备,卫星 1、2、3、4 为本次定位要用到 的四颗卫星: ? Position1、Position2、Position3、Position4 分别为四颗卫星的当前位置(空间坐标), 已知 ? d1、d2、d3、d4 分别为四颗卫星到要定位的 GPS 接收器的距离,已知 ? Location 为要定位的卫星接收器的位置,待求 那 么定位的过程,简单来讲就是通过一个函数 GetLocation(),从已知的[Position1,d1]、 [Position2,d2]、 [Position3,d3]、[Position4,d4]四对数据中求出 Location 的值。