TrailCam

指南

怎么给 GPX 文件加一个路径点

回到家,看着刚记录的那趟徒步的地图,总有一个地方值得标出来,但轨迹本身没有标——那道容易错过的栅栏门,那处真的在流水的泉眼,那个路牌倒了的岔路口。轨迹已经把走过的形状留下来了。它本来没有的,是一种说「就是这里,这个地方值得记住」的办法。加上去是一次单独的小改动,先弄清楚它到底动了什么,再动手比较好。

一句话说完

用一个 GPX 编辑器打开文件——GPX Studio 是个免费的、在浏览器里就能用的工具——在地图上点一下想标的位置,加一个带名字的路径点,保存。文件里现在就同时装着原来的轨迹和新加的路径点。要是不介意把文件当纯文本打开,手动敲一小段 <wpt> 也能得到一样的结果,只要它放在已有的 <trk> 元素外面,而不是里面。

为什么轨迹本来就没有这个

记录好的轨迹,是走路的时候自动写下来的一串有先后顺序的点——这串点里没有哪一个是为了说「这一点比旁边的点更重要」而存在的。路径点是完全不同的一种东西:一个人特意标出来的、单独的一个地方,带着名字,跟任何顺序都无关。这两样东西活在同一种文件格式里,但干的是不同的活,这也正是为什么事后加一个路径点是一次真正的编辑,而不是打开一个开关那么简单。

这也是为什么标记这件事得放到后面、对着已经写完的文件来做,而不是在走路的当下做。正在记录轨迹的手机,是在向 Core Location 要一连串的位置更新,来一个写一个;它没有办法在几天或几周之后,等你决定了哪一个点值得起个名字时,再回头从那串更新里单独挑出那一个点来。

用 GPX 编辑器来加

对大多数人来说,这是值得走的那条路。像 GPX Studio 这样的工具会打开文件、把已有的轨迹画在地图上,然后让你在地图上任意一点点一下,落一个新点,给它打上名字,再把结果存回一个 GPX 文件。因为底层的 XML 是编辑器帮你生成的,不会有标签写错的风险,也不会不小心碰到轨迹本身——轨迹只是被画出来当参照,工具并不需要你去改动它。

QGIS 这类 GIS 软件也能干同样的事,控制得更细,如果你已经用惯了它。但只是想给一次徒步加一个路径点,这就有点杀鸡用牛刀了。

在文本编辑器里手动加

因为 GPX 是纯文本 XML,路径点可以直接手打进去。大致是这样,作为独立的一个元素,而不是嵌套在轨迹里面:

<wpt lat="46.1234" lon="7.5678"><name>泉眼,有水在流</name></wpt>

真正要紧的是纬度和经度这两个数字——可以从离想标记的地方最近的那个轨迹点上抄,也可以从一张点一下就显示坐标的地图上抄。<name> 是接收方的 App 通常会当作标签显示出来的文字。海拔可以用同样的方式加进去,但这一项是可选的;一个只有坐标和名字的路径点,已经是完整有效的了。

这个元素放在文件的哪个位置,是有讲究的。一个带轨迹的 GPX 文件,结构大致是若干个各自独立的 <wpt> 元素,接着是一个装着记录点的 <trk> 元素。新的路径点应该跟已有的 <wpt> 元素放在一起(如果有的话),或者如果一个都没有,就直接放在根节点 <gpx> 标签下面——千万别放进 <trk> 或 <trkseg> 里面,那两个地方是留给按顺序记录的点用的,一个不该出现在那里的路径点,会让期望看到一条有序轨迹的读取程序犯迷糊。

手动编辑时,到底是什么会把文件弄坏

  • 标签没闭合——写了 <wpt ...> 却没写对应的 </wpt>,或者少打了一个尖括号,这就足以让整个文件变成不合法的 XML,而不只是新加的这个点错了。
  • 名字里混进了 & 或 < 这类字符——XML 会把这些符号当成语法的一部分,所以像「老王 & 一家的桥」这样的名字,得写成「老王 &amp; 一家的桥」,不然文件从那个位置开始就解析不下去了。
  • 不小心把新元素放进了 <trk> 或 <trkseg> 里面——从技术上说路径点可能还在文件里,但有些读取程序只会在轨迹结构外面找 <wpt> 元素,不会把它显示出来。
  • 用文字处理软件保存而不是文本编辑器——智能引号、富文本格式,或者不是纯文本的编码,都可能被悄悄写进一个原本应该只有纯 XML 的文件里。
  • 把纬度和经度写反了,或者负号弄错了——两个看着挺像回事的数字,只要顺序一反,就能把路径点摆到完全不挨着的另一个地方去。

TrailCam 在这里能做什么

TrailCam 把一条路线记录成一整条连续的轨迹,还会在你人还在外面走的时候,把一张照片、一段视频或一句语音,钉在拍下它的那个准确位置——这个关联是当场对着正在移动的轨迹做的,而不是事后补加到文件里的东西。给一个已经导出的 GPX 文件加一个独立的路径点,标记一个只有回到家之后才意识到重要的地方,这种编辑更适合交给 GPX 编辑器,而不是内建在记录功能本身里。TrailCam 除了能导出 GPX,也能把文件导回来,所以编辑好的文件之后还能重新导入。导出功能是单条路线或整段历史,格式是 GPX 1.1 或 CSV,属于可选的 TrailCam Pro;App 本身免费下载。

常见问题

加一个路径点,会改动记录好的轨迹吗?
不会。路径点是文件里独立的一个元素,跟轨迹结构没有关系。加上它,不会动到任何一个记录下来的点,也不会动到那条线的形状。
能给同一个 GPX 文件加不止一个路径点吗?
能。一个文件可以在一条轨迹之外,装下任意多个各自独立的路径点,所以在同一趟徒步里标出好几个地方,只是把同样的操作重复几遍。
加路径点需要专门的软件吗?
严格说不一定——GPX 是纯文本,只要小心语法,用文本编辑器加一个也没问题。用一个免费的、在浏览器里跑的 GPX 编辑器,能避免打错字把文件弄坏,对大多数人来说更省心。

记录你自己的轨迹

TrailCam 是一款 iPhone 上的 GPS 轨迹记录 App,会把沿途拍的视频、照片和语音钉在你拍下它的那个位置,并支持导出成 GPX 1.1 或 CSV。免费下载。

在 App Store 下载