GPX 文件里会记录每个点的 GPS 精度吗
格式上是允许的。GPX 1.1 给每个轨迹点都留了几个跟精度有关的可选字段——精度衰减值、用到的卫星数、定位类型——带着这些字段的文件同样是合法的 GPX 文件。少见的是手机记录的轨迹真的把这些字段填上,原因倒不是哪个 App 偷懒,而是手机的定位系统一开始给出的数字,压根就不是这几个字段本来要装的那种。
简单说
GPX 的轨迹点可以带上跟精度相关的字段——hdop、vdop、pdop、sat、fix——但全都是可选的,绝大多数手机记录的轨迹会把这些字段整个跳过。打开一个从常见徒步或跑步 App 导出的 GPX 文件,通常只会看到每个点的经纬度、海拔和时间戳,别的什么都没有。
这不代表文件坏了或者不完整。只是 App 手里从来就没有这几个字段要求的那种数值,与其在一个含义明确的标签里塞一个会误导人的数字,不如干脆留空。
规范里到底留了哪些字段
GPX 1.1 允许轨迹点带上几个可选元素,包括 hdop(水平精度衰减值)、vdop(垂直精度衰减值)、pdop(综合位置精度衰减值)、sat(用于这次定位的卫星数量)和 fix(定位类型——2D、3D、DGPS 等等)。这些都不是必须的。一个只有经纬度的点,跟一个五个字段全带齐的点,同样都是合法的 GPX 轨迹点。
这些字段是上一代 GPS 硬件留下来的——专用的手持 GPS、船用或航空用接收机——那时候芯片在算出位置的同时,也能顺便报告当下卫星几何分布好不好。精度衰减值低,说明看得到的卫星在天上分布得比较均匀;数值高,说明卫星挤在一块儿,定位因此变弱。把这个数字跟坐标一起写下来,对那类接收机来说是很自然的事,格式也就给它留了位置。
手机描述精度的方式本来就不一样
手机不会把专用 GPS 芯片内部算出来的那种原始精度衰减值交给 App。iOS 给出的定位精度是一个以米为单位的水平精度值——本质上是以报告位置为圆心的一个半径,真实位置大概率落在这个圆里。这个数字在记录过程中实时显示很有用,但它跟 HDOP 是两种不同的测量方式,两者之间也没有直接换算的公式。App 没法往 GPX 的 hdop 字段里写一个有意义的值,因为它手里压根就没拿到过那种数值——它只有一个以米为单位的距离,而格式里也没有专门为这个数字准备的标准字段。
所以这个空白不是记录 App 在导出环节偷工减料,而是实实在在反映了现在手机定位接口给出的东西,跟 GPX 那几个老牌精度字段当初设计时想的根本不是一回事。
这实际上会造成什么影响
影响比听起来的要小。记录 App 在徒步过程中,早就在用它手头有的那份精度信息了——判断某次定位够不够格记进轨迹、把明显离谱的读数抹平、在开始记录前多等一会儿让接收机先稳定下来,都是这类判断。等一个点真正进了保存下来的路线,之后又被导出成 GPX 文件的时候,这些筛选工作早就做完了。拿到手的文件,是 App 觉得靠得住的那批点,不是把每一条原始读数连带一个置信度分数一股脑倒出来。
如果某个 GIS 工具或者研究流程就是需要精度衰减值来做统计筛选,那它问的其实是手机轨迹从来没打算回答的问题。这本来就该找专用 GPS 硬件来满足,那些字段最初设计出来正是为它们准备的,而不是给面向大众的户外记录 App 用的。
容易想岔的地方
- 看到 hdop 字段是空的,就以为这条轨迹不可靠——通常这只说明文件是手机记录的,字段本来就是可选的,手机上的 App 手里也没有对应的数值可填。
- 以为要求精度衰减值的地图或 GIS 工具,会像接受测量级接收机的文件一样,同样接受手机记录的 GPX 文件——字段缺失反映的是记录设备报告信息的差异,不是文件本身有问题。
- 把记录过程中屏幕上实时显示的精度数值,跟最终写进导出文件里的值当成一回事——两者目的相近,但不一定是同一个字段,多数面向大众的 App 根本不会把屏幕上那个数字带进 GPX 导出结果里。
- 以为所有记录 App 跳过这些字段都是同一个原因——有些确实是手里从来没有那份数据;但也有少数专用 GPS 设备,因为芯片能直接算出精度衰减值,真的会老老实实把它写进去。
TrailCam 是怎么做的
TrailCam 把轨迹导出成 GPX 1.1,带着这个系列指南里每个工具真正依赖的那些字段——每个点的经纬度、海拔和时间戳。它不会附带精度衰减值,原因跟前面说的一样:这本来就不是 iPhone 定位系统一开始会交给 App 的那种精度数据。导出功能属于可选的 TrailCam Pro 升级,App 本身免费下载。
常见问题
- 事后能查到轨迹里某个点当时的定位精度吗?
- 普通的消费级 GPX 导出做不到。记录时屏幕上显示的实时精度数值,通常跟 GPX 里可选的 hdop 不是同一个字段,而且大多数 App 两者都不会带进导出的文件里。
- 为什么专用手持 GPS 设备导出的 GPX 文件有 hdop 数值,我手机导出的却没有?
- 老式专用接收机能直接从卫星几何分布算出精度衰减值,并且直接写进文件。手机的定位系统给出的是另一种精度测量方式——以米为单位的水平精度半径——GPX 里没有专门对应这个数字的标准字段。
- hdop 字段缺失是不是说明记录过程出了什么问题?
- 不是。这个字段在 GPX 格式里本来就是可选的,绝大多数手机记录的轨迹从来都不会填它。字段是空的,反映的是记录设备本身报告信息的差异,不是轨迹有毛病。
记录你自己的轨迹
TrailCam 是一款 iPhone 上的 GPS 轨迹记录 App,会把沿途拍的视频、照片和语音钉在你拍下它的那个位置,并支持导出成 GPX 1.1 或 CSV。免费下载。