GPX 文件是 1.0 版还是 1.1 版,重要吗
对一次徒步真正要紧的那部分来说,几乎不重要。打开任何 GPX 文件,开头的标签里都会写着版本号——几乎总是 1.0 或者 1.1——难免让人好奇这个数字到底决定了什么。其实基本上什么都不决定。在地图上画出轨迹的那串坐标,两个版本的写法是一样的;真正变的那部分,在文件的边角上,不在承载你这趟路的地方。
简单说
只看轨迹能不能读回来的话,不重要。2002 年发布的 GPX 1.0,和 2004 年发布、如今几乎所有地方都在用的 GPX 1.1,描述一条轨迹的方式是一样的:航点、路线,以及由轨迹段组成的轨迹,每个轨迹段又由轨迹点组成,每个点带着经纬度,通常还有海拔和时间。这套结构——地图应用真正需要用来画出你走过的路的那部分——在两个版本之间基本没变。不管开头标签写的是哪个版本号,现在的应用读坐标的方式都是一样的。
1.1 到底改了什么
差别在边角上,不在骨架上。GPX 1.0 把一些说明性的信息——比如轨迹的作者、指向外部的链接——零零散散地放在文件好几个层级里,每处一条。GPX 1.1 把这些大多归拢进了文件靠前位置的一整块元数据,还给链接单独设了一个可以重复出现的元素,这样一份文件就能干净地指向不止一个外部链接,而不是只能有一条。它还加入了正式的扩展机制:在文件的好几个层级都留出一个"官方认可"的位置,让某个应用可以往里面塞自己的自定义数据,而不会影响其他应用读同一份文件。这些改动都没碰到轨迹点本身是怎么写的。
换句话说,1.1 收拾的是描述文件本身的那部分,也给了应用一个安全的地方去挂自己的额外数据。真正描述你走到哪儿的那部分,在 1.0 的时候就已经够用,之后也没变过。
为什么这基本不会造成真的麻烦
所有支持 GPX 的地图工具、手表平台、徒步应用,要读的都是这套没变过的坐标结构。实际情况是,一台老设备导出的 1.0 文件,和一个新应用导出的 1.1 文件,在同一批现代工具里打开的效果是一样的——开头标签里的版本号更像是一个标签,而不是一道关卡。还在持续更新的软件,因为文件写的是 1.0 而不是 1.1(或者反过来)就直接拒收的情况,很少见。
GPX 文件真正打不开的时候,问题出在哪
如果导入真的失败了,原因几乎从来不是版本号。XML 结构本身有问题、某个必填字段是空的、一条轨迹里根本没有点——这些才会让导入卡住,不管文件自称是哪个版本。一个文件完全可以写着 1.1,同时又因为跟版本号毫无关系的原因而是坏的。
容易搞错的地方
- 以为必须先把文件从 1.0 转成 1.1,或者反过来,某个应用才肯收——就坐标数据本身而言,通常根本不需要转换,两种写法读出来的点是一样的。
- 导入失败了,就怪到文件开头那行版本号上——真正的原因几乎总是文件里别的地方出了问题。
- 以为同一次徒步,1.1 的文件会比 1.0 的文件在新应用里显示更多细节——1.1 多出来的那部分结构,大多是应用可用可不用的可选扩展数据,轨迹本身看起来是一样的。
- 把版本号当成轨迹新不新、准不准的标志——它说明的只是这份文件遵循哪一版规范,跟这趟路是什么时候走的、GPS 定位好不好没有关系。
TrailCam 能帮上什么忙
TrailCam 不管是导出单条轨迹还是整段历史,用的都是 GPX 1.1——Strava、Garmin Connect、Komoot 都读得懂的那个版本。选它主要是因为这是眼下大家都默认接受的版本,而不是因为需要什么只有 1.1 才有的东西:从 TrailCam 记录并导出的一次徒步,在这些工具里打开的效果,跟一份 1.0 的文件是一样的,因为不管声明的是哪个版本,底下的坐标都是同一种写法。导出功能包含在可选的 TrailCam Pro 里,App 本身免费下载。
常见问题
- 老的 GPX 1.0 文件,现在的徒步或地图应用还能打开吗?
- 能。轨迹赖以建立的坐标结构在 1.0 和 1.1 之间没有变化,所以现在的应用读 1.0 文件和读 1.1 文件是一样的方式。
- TrailCam 导出的是哪个版本的 GPX?
- GPX 1.1,不管是导出单条轨迹还是整段历史都是这个版本——也是 Strava、Garmin Connect、Komoot 读得懂的那个版本。
- 不导入任何应用,怎么才能知道一个 GPX 文件是哪个版本?
- 用任意一个文本编辑器打开这个文件就行。靠近文件开头的第一个标签里,直接写着 1.0 还是 1.1 的版本信息,不用为了确认这一点特意把它导进地图应用。
记录你自己的轨迹
TrailCam 是一款 iPhone 上的 GPS 轨迹记录 App,会把沿途拍的视频、照片和语音钉在你拍下它的那个位置,并支持导出成 GPX 1.1 或 CSV。免费下载。