乐于分享
好东西不私藏

导航APP如何知道你在哪:GPS与定位背后的GIS

导航APP如何知道你在哪:GPS与定位背后的GIS

昨天的文章,提到了一点GIS跟普通人的关联,不过大家可能不大理解这“小众”的GIS跟我们普通老百姓到底有啥关联。今天小文就给大家讲讲,大家经常用但不一定知道的关联吧。

大家平时出门去走亲访友,特别是去不熟悉的地方,是不是已经很少问路了?一般都是亲朋微信发定位、然后我们用百度地图、高德地图等地图软件,导航、叫车等过去。

但是,大家知道你的手机是怎么知道你实时的准确位置、地图APP又是怎么找到最优路线带你过去的吗?这些就是小文接下来要给大家分享的内容了。

不过,今天的内容会是半生活半技术,技术部分大家如果不感兴趣,可以跳着看即可。内容比较多,今天小文先给大家讲手机定位,下次空一点小文再讲其他的内容。

找到你的位置——手机定位原理

现在的智能手机,基本上都内置了GPS芯片,这个是我们手机实现定位的主要硬件。不过,手机的定位功能通常来自于三个模式(对应三个硬件模块):GPS卫星定位→GNSS 接收芯片及天线‌、WiFi定位→Wi-Fi 模块、基站三角定位→基带通信芯片(配合天线)。

还有,实际定位时也会根据用户需要,调动不同的模块,甚至多个模块一起调用,一般按如下分法:

1.高精度模式:同时调用 ‌GNSS 接收芯片(含天线)‌、‌Wi-Fi 模块‌ 和 ‌基带通信芯片(用于移动网络基站信号)‌,三者融合计算位置。

2.低功耗模式:仅使用 ‌Wi-Fi 模块‌ 和 ‌基带通信芯片‌(扫描基站/Wi-Fi 指纹),‌不启用 GNSS 硬件‌。

3.仅设备模式:仅依赖 ‌GNSS 接收芯片(含天线)‌ 接收卫星信号,无需网络模块参与。‌‌

接下来小文给大家简单讲讲各模块的定位原理和技术。

1

卫星定位

现在的卫星定位,除GPS‌(美国)和‌北斗‌(中国)外,还普遍兼容‌GLONASS‌(俄罗斯)、‌Galileo‌(欧盟),部分机型支持‌QZSS‌(日本)和‌NavIC‌(印度)。上述是目前主流的卫星定位系统。

当然,现代的智能手机大多采用多模多频芯片,默认同时搜索并融合上述多个系统的卫星信号(即GNSS技术),而非单一依赖某一种。小文主要给大家讲讲使用最多的GPS和我国的北斗卫星定位。

GPS卫星定位

GPS(Global Positioning System,全球卫星定位系统)是由美国国防部研发的卫星定位系统。目前运行的已经是第三代GPS Block III卫星星座,包含至少24颗工作卫星分布在6个中地球轨道平面上(离地大概20200公里,使用的是前面小文给大家介绍过的WGS-84地理坐标系统,民用的经度大概在10-15米),每个轨道约4颗主用卫星。

1.核心原理:三边测量(Trilateration)

如上图所示,所谓的三边测量既是通过测算三个卫星与你手机所在位置的距离、三个卫星自己的位置坐标来实现定位。技术实现上大概是按照下面的三步走:

话又说回来了,既然说GPS是用三边测量法定位的,为什么我配的图还有第四颗卫星,而且三步走里面也说至少要通过4颗卫星的伪距数据来解方程组呢?

理论上3颗卫星可以确定三维坐标(x、y、z),但是实际上接收机时钟与卫星原子钟之间存在一定的误差(校正前的距离就是伪距),也就引入了第四个未知数——时钟偏差。因此需要4颗卫星建立四个方程组来求解4个未知数(x,y,z,Δt)。

2.伪距测量

上面我们提到了通过至少4颗卫星的伪距数据来接方程组,也就是我现在说的伪距测量。

伪距是GPS定位的核心概念——之所以叫“伪距”,是因为它并不是真实距离,而是包含了接收机时钟误差的距离测量值。

伪距计算公式:

伪距 ρ = c × (t_receive - t_transmit)

其中:

  • c = 光速(约3×10^8 m/s)

  • t_receive = 接收机收到信号的时刻

  • t_transmit = 卫星发送信号的时刻

伪距方程组(4颗卫星)

sqrt((x - x1)^2 + (y - y1)^2 + (z - z1)^2) + c·Δt = ρ1sqrt((x - x2)^2 + (y - y2)^2 + (z - z2)^2) + c·Δt = ρ2sqrt((x - x3)^2 + (y - y3)^2 + (z - z3)^2) + c·Δt = ρ3sqrt((x - x4)^2 + (y - y4)^2 + (z - z4)^2) + c·Δt = ρ4

其中:

  • (xi, yi, zi) = 第i颗卫星的三维坐标(已知,来自星历数据)

  • (x, y, z) = 接收机位置(待求)

  • Δt = 接收机时钟偏差(待求)

  • ρi = 测量得到的伪距

通俗点解释就是:卫星信号中带有"我是谁、我在哪、现在几点"三要素。手机收到信号后,用"收到时间 - 发出时间 × 光速"算出距离。但因为手机时钟没那么准,算出来的距离叫"伪距"——差了一个时钟偏差。4颗卫星4个方程,4个未知数(x, y, z, 时钟偏差),刚好解出来。

3.误差

在现实中,手机的GPS定位好像并不是特别精确,也就是会有一定的误差。GPS定位精度受到多种误差源影响:

在日常生活中,感受误差的体现:

你在高楼林立的城市峡谷里导航,定位经常"飘"——这就是多径效应,卫星信号被大楼反射后产生多条路径,手机分不清哪条是直射信号。

4.精度增强技术

差分GPS(DGPS):地面基站计算卫星信号误差,生成修正数据广播给终端,精度提升至1-3米。

A-GPS(辅助GPS):通过移动网络下载星历数据,帮助接收机更快捕获卫星信号,将冷启动的数分钟缩短至数秒。

RTK(载波相位差分):基准站将载波相位观测值发给移动站进行求差解算,达到厘米级精度。

多系统融合:同时接收GPS+北斗+GLONASS信号(共约100颗卫星),通过算法筛选最优信号组合,抗干扰能力提升30%以上

北斗卫星导航系统(BDS)

北斗卫星导航系统(BeiDou Navigation Satellite System,BDS)是中国自主研发的全球卫星发行系统,经历20年的时间,终于2020年北斗一、二、三号共计55颗卫星(含部分备份和试验卫星,不参与组网)全都升空完成全球组网,开通全球服务,正式跻身全球导航系统前排。

图片来自网络

北斗的定位原理与GPS基本是一致的,小文就不赘述了。

北斗三号全球系统‌组网卫星是30颗‌,由24颗中圆轨道、3颗地球静止轨道和3颗倾斜同步轨道卫星构成 。在正式组网前还发射了5颗试验卫星进行技术验证,‌累计发射约35颗‌ 。‌‌‌

星座组成(北斗三号采用独特的混合星座):

那么,北斗卫星导航系统和GPS有什么差别?孰强孰弱?

相较于其他卫星导航系统,北斗卫星有三大独有优势:

1. 短报文通信:用户不仅能接收定位信号,还能主动发送120汉字的短报文。2025年西藏日喀则地震中,灾区通信中断,救援人员通过北斗短报文发送关键救援信息

2. 三频信号:北斗三号自设计伊始即面向全球播发三频公开信号,可组成三频无电离层组合,将一阶电离层延迟消至毫米级残差;动态RTK首次固定时间由15秒级降至5秒级

3. 混合星座优势:在亚太区域PDOP值可低至1.3(优于GPS的1.4),北京等北纬30°-45°大城市可见星数平均比GPS多3-5颗,抗遮挡能力显著增强

现在,国内主流的手机和需要定位的APP基本都支持接收北斗卫星的信号。

2

WiFi定位

WiFi定位主要是基于无线信号的传播特性,通过设备接收到周围的WiFi热点(AP)的信号强度(RSSI)、MAC地址等信息,结合已有位置数据库或算法,计算出设备的具体位置。

原理是信号强度随距离增加而衰减(遵循路径损耗模型),通过将RSSI转换为距离估计值,再基于几何原理计算位置。这需要至少3个已知位置的AP,不过因为RSSI的波动大,距离估计误差大,精度只有几米到十几米。

日常场景

你走进商场,GPS信号被屋顶挡住了,但手机仍能定位——因为手机扫描到周围的WiFi热点(不需要连接WiFi,只需要开启WiFi开关即可),通过这些热点的位置和信号强度推算出你在哪。

WiFi定位的主流方法是WiFi指纹定位。一般分成两个阶段:

图片来自网络,基于RSSI的三角定位原理

图片来自网络,WiFi指纹定位示意图

相较于普通基于RSSI的三角定位发法,WiFi指纹定位的精度更高(1-5米)且不需要提前知道AP位置,能应对AP位置或状态改变。适用于商场、机场、地下停车场等GPS信号盲区的室内定位场景。

3

基站三角定位

手机的基站三角定位是利用至少三个基站接收手机信号,通过到达时间差(TDOA)、到达角(AOA)或信号场强计算几何交点来确定位置,无需SIM卡,但是需要手机开机。市区精度大约只有50-200米,偏远地区误差更是能达到千米级别。

图片来自网络

1.最基础的Cell-ID定位

原理是通过手机连接基站,确定基站Cell-ID,而基站位置是已知的,就能大概锁定手机在该基站覆盖范围内。

按照不同基站覆盖范围的不同,这种方式的定位精度只有500米-2000米。但胜在成本低、响应快,还容易实现。

日常生活中,在手机无卡或停机情况下拨打报警、消防、急救等急救电话,一般就是通过这种方法实现的。也能在无GPS信号时进行粗略定位。

2.E-CID(增强型Cell-ID)

这种方式是在Cell-ID的基础上,增加相应的辅助信息,从而实现定位精度的提升。

3.TOA(到达时间)

这个方式是通过测量多个基站发送的参考信号到达手机的时间来计算距离,以这个距离为半径画圆,圆的交点就是手机所在的位置。

定位的原理参考上面说到的三边测量法,这里就不再讲了。

这个方法有一定的缺点,就是要求基站与手机之间时间严格同步,1ns时钟同步误差就会产生大概0.3米的测距误差。

4.更实用的TDOA(到达时间差)

TDOA是通过测量手机与附近两个基站的信号到达时间差来计算距离差,3个以上基站两两形成双曲线,双曲线的交点就是手机的位置。

图片来自网络

从数学上看,手机位置必定以这两个基站为焦点、距离差为定差的双曲线上。

最重要的是,利用相对时间差,我们就不需要确保基站与手机的时钟严格同步,更容易在现实中实现精确定位的效果。

5.AOA(到达角度)

利用基站天线阵列测量手机信号到达方向角,两个以上基站的AOA测量进行三角定位。

这种方法的优点是定位精度较高,但是需要复杂昂贵的天线阵列设备,对反射敏感才行。

4

多源融合定位

刚刚说了好几种定位方法,但是现代导航软件早已经不是依赖单一技术,而是形成“多源融合定位”系统,在不同场景下智能切换使用。

图片来自网络

在日常生活中,当你从户外走向商场时,GPS信号逐渐减弱直至消失(室内基本无法接收GPS信号),手机会自动切换到WiFi定位——这个过程对你来说是透明的,你只看到蓝点还在地图上移动。

好了,今天小文的分享先到这里。本来想把手机定位、导航、地图数据来源等全部一起讲的,但是写完定位发现内容可能有点多了,所以就还是放到下一次来讲吧。

明天有固定的分享计划(ArcGIS Pro 的数据加载与浏览_添加数据_导航与缩放),而本篇续接的下集应该会安排在下周二,大家敬请期待哈!

求点赞

求分享

求喜欢

相关学习资料