GPX 和 KML,轨迹数据到底该用哪个
GPX 和 KML 底层都是同一种材料——一串坐标——画出来也都是地图上的一条线,但两者当初要解决的问题不一样。GPX 是为了把 GPS 轨迹原封不动地在设备和软件之间搬来搬去,不额外添加任何东西。KML 是为了让一张地图在 Google Earth 里呈现成想要的样子:用哪个图标、什么颜色、什么镜头角度。对一次记录下来的徒步来说,这个出发点上的差异,基本就决定了该往哪边放。
两种格式各自是为了装什么
GPX 装的是原始 GPS 数据
一条 GPX 轨迹就是一串按顺序排列的点,每个点带经纬度,通常还带海拔和时间戳。格式里没有任何字段描述这条线在屏幕上该长什么样——没有颜色,没有图标,没有镜头位置。它故意保持精简,这也是 GPS 设备、手表、手机和各种地图平台都能用同一种方式读它的原因。
KML 装的是呈现方式
KML(Keyhole Markup Language)来自 Google Earth,设计的重点不只是点在哪里,更是地图该怎么呈现:可以给线设置颜色和粗细,给标记点放自定义图标,把内容分好文件夹,甚至能设置一段导览用的镜头视角。这就是这个格式存在的意义——它描述的是一个场景,而不只是一条轨迹。
海拔为什么会在 KML 查看器里悄悄消失
KML 的标记点跟 GPX 的轨迹点一样,也能给每个点存一个海拔数值。两者的差别在于默认怎么处理这个数值:很多 KML 查看器如果文件里没有明确指定,会直接把路线贴在地形表面上画出来,结果就是——即便文件里确实存着记录下来的海拔数据,屏幕上的起伏也可能完全看不出来。GPX 没有这类需要指定的选项,轨迹点里的海拔值读出来就是海拔本身。
这算不上谁的锅,只是说明 KML 这个格式本来就是围绕"地图好不好看"来设计的——一个不影响画面的数值,查看器自然容易把它当成可有可无的东西。
为什么这对一次徒步很关键
Strava、Garmin Connect、Komoot、Gaia GPS、CalTopo 这类徒步和骑行平台,从一开始就是围着 GPX 搭起来的,因为它们真正需要的是原始轨迹:距离、配速、爬升,还有能拿来回放、跟同一条路线的另一天做对比的路线,这些都跟线是什么颜色没关系。把 KML 文件丢给这些平台,运气好也就是勉强导进去,大多数干脆就只认 GPX。
KML 真正派上用场的是记录结束之后的那一步:把路线做成好看的东西给别人看——嵌在游记网页上的彩色地图、给营地点标一个专属图钉、在 Google Earth 里做一段带镜头运动的导览——这正是 KML 这个格式当初被设计出来要做的事。
两者对照
- 用途:GPX 在设备和软件之间原样搬运 GPS 数据。KML 控制地图的呈现方式。
- 出身:GPX 是 2002 年发布的开放格式,不属于任何一家公司。KML 来自 Google Earth,是 Google 自家的地图格式。
- 样式:GPX 没有样式这个概念。KML 能设置线条颜色、图标、文件夹分组,还有镜头视角。
- 海拔:两种格式都能给每个点存一个海拔数值,但 KML 查看器在没有明确指定的情况下,可能会把线贴到地形表面上画;GPX 没有对应的这类设置。
- 兼容性:GPX 几乎被所有徒步、骑行和地图平台原生支持。KML 被 Google Earth 和 Google 我的地图原生支持,其他地方的支持面要窄得多。
两种格式互相转换
把 GPX 轨迹转成 KML,为的是在 Google Earth 里显示得更好看,或者要用在 Google 我的地图上,这是常见也说得通的一步——路线的形状转换后基本保持不变,GPS Visualizer、GPSBabel 这类免费工具一次操作就能完成。反过来,把带样式的 KML 转回纯粹的 GPX,实际用处通常不大:那些要 GPX 的路线平台只需要坐标本身,KML 加上去的样式信息一旦落回一条纯轨迹,也就没有地方可以挂了。
TrailCam 导出的是什么
TrailCam 用 GPS 记录路线,单条路线或整段历史都能导出成 GPX 1.1,也能导出 CSV 汇总。GPX 这个格式跟一次记录下来的徒步本身对得上——距离、海拔、时间信息都原样留着的一条轨迹——而 Strava、Garmin Connect、Komoot 都能直接读取这个格式,中间不用转换这一步。导出是可选的 TrailCam Pro 功能,App 本身免费下载。
常见问题
- KML 和 GPX 是一回事吗?
- 不是。两者都描述坐标,但 GPX 是为了把原始 GPS 轨迹数据在设备和软件之间搬运,KML 是为了控制地图的呈现方式——颜色、图标、镜头视角。两者要解决的问题本来就不一样。
- KML 文件能导入 Strava 或 Garmin Connect 吗?
- 一般不会像 GPX 那样顺利。徒步和骑行平台都是围着 GPX 设计的,为 Google Earth 做的 KML 文件通常得先转成 GPX,如果这个文件本来就是为了样式而做的,转换过程中还可能丢掉那部分意义。
- KML 文件会保留徒步记录的海拔数据吗?
- 数值本身可以存下来,但很多 KML 查看器默认会不管这个数值,直接把线贴在地形表面上画。所以即便文件里确实存着海拔数字,屏幕上也可能完全看不出记录下来的起伏。
- TrailCam 能导出 KML 吗?
- 不能。TrailCam 导出的是 GPX 1.1 或 CSV 汇总,这正是徒步和地图平台预期的格式。如果某个特定用途——比如 Google 我的地图——需要 KML,可以之后再从 GPX 转换过去。
记录你自己的轨迹
TrailCam 是一款 iPhone 上的 GPS 轨迹记录 App,会把沿途拍的视频、照片和语音钉在你拍下它的那个位置,并支持导出成 GPX 1.1 或 CSV。免费下载。