跳转到内容

轨迹与区域

Advanced Maps 支持 GPX、GeoJSON、KML 和 TCX。轨迹文件可以直接成为 Base 结果,也 可以被命中的笔记链接;被链接的文件继承所属笔记的图钉颜色。

希望轨迹出现在 Base 地图上、而不是在笔记中再生成一张地图时,使用普通链接,不加 !

---
coords: 30.215709,120.130799
---
[[track.gpx]]

只要 Base 包含这篇笔记,地图就会画出轨迹。写在属性里的链接也一样:

track: '[[track.gpx]]'

只有确实想在正文里再放一张独立轨迹地图时,才使用嵌入:

![[track.gpx]]
写法 Base 或周围地图 笔记里的内联轨迹地图
[[track.gpx]] 绘制轨迹
track: "[[track.gpx]]" 绘制轨迹
![[track.gpx]] 绘制轨迹

正文普通链接、嵌入和属性里的文件链接会分别解析并去重。只有实际嵌入会创建内联地图。

轨迹带有不同的起点与终点标记、方向箭头和具名途经点;显示轨迹标记可以关闭这些附 加元素。

一条 GPX 轨迹带绿色起点、红色圆环终点和方向箭头

悬停轨迹会打开这篇笔记自己的气泡——和它的图钉打开的是同一张卡片——卡片里多出一行,说 的是指针底下的那个东西。手机上点一下轨迹,打开的是同一张卡片,多出来的也是同一行。

  • 一条轨迹:加上这一个文件的距离、爬升和总时长,标题就是文件自己的名字。一篇笔记 里上午一段徒步、下午一段骑行,两条各报各的,不会加成一个谁也不描述的数。
  • 一个具名途经点:改为显示它的名字。显示轨迹标记关掉后,名字和标记一起消失。
  • 一个面:什么也不加。边界不是走过的距离。

只有文件真正记录过的项才会出现:没有海拔的 GPX 显示距离和时间,没有时间戳的显示距离 和爬升。其余的——下降、海拔范围、移动时间、配速和高程剖面——留在内联的 ![[track.gpx]] 里,那里放得下。

如果一篇笔记要显示的属性全为空,内置地图根本不会为它弹出气泡,也就没有可加的地方。这 是它对图钉本来的规则,这里照旧。

GeoJSON 和 KML 里装的可以是面,而不是轨迹。面用所属笔记的颜色填充,边界用同样的线宽 描出,洞仍然是洞。

面不带方向箭头,也没有起点终点标记,不计入内联地图下方的统计。点击时它排在最后:落在 面里的图钉、途经点或照片,点击仍然归它们自己。

从 GeoJSON 和 KML 读出的面:按所属笔记颜色填充,其中两个带未填充的洞,一条带绿色起点、红色圆环终点和方向箭头的轨迹穿过其中一个

内联的 ![[track.gpx]] 是一张实时地图,下面显示距离、累计爬升与下降、海拔范围、总时 长与移动时间、配速和高程剖面。源文件没有的数据直接省略,不会显示成 0。悬停剖面时,地 图上的游标会沿轨迹移动,反过来也一样。手机上两个方向都听点击的:点剖面,游标沿轨迹 移动;点轨迹,剖面的读数跟着走。没有指针可以离开,所以读数会一直停在你点的地方,直 到你点向别处。

一张实时 GPX 内联地图,下面有距离、爬升、时间、配速和可悬停高程剖面

手机上的同一种嵌入:轨迹、统计行,以及高程剖面上停在刚才点过的位置的读数

累计爬升会忽略 5 米以内的变化,抑制 GPS 漂移;移动时间统计 0.9 km/h 以上的速度,让慢 走和爬楼梯仍然算作移动。

这一整套要不要发生,由设置 → 轨迹里的内联轨迹地图决定。关掉之后本插件不接管任 何轨迹文件,嵌入的 ![[track.gpx]] 就是 Obsidian 自己做出来的那个嵌入——也就是没装这个 插件时的样子。已经打开的笔记要重新打开才会变。

内联轨迹地图还会绘制宿主笔记链接的定位照片。下方统计仍然只描述轨迹本身。

内联 GPX 地图把宿主笔记的照片缩略图放在轨迹沿线

上面这些数字只活在嵌入里,任何筛选都够不着。把轨迹数据写进属性会统计当前笔记链 接的轨迹文件,把结果作为数字写进这篇笔记自己的属性:

track-distance-km: 13.62
track-ascent-m: 512
track-descent-m: 499
track-lowest-m: 12
track-highest-m: 1850
track-duration-min: 161
track-moving-min: 148
track-speed-kmh: 5.5
track-start: 2024-05-01T09:30
属性 单位 来源
track-distance-km 公里,两位小数 所有轨迹段之和
track-ascent-m 超过 5 米噪声阈值的爬升
track-descent-m 同上,下降
track-lowest-m 文件里出现过的最低海拔
track-highest-m 最高海拔
track-duration-min 分钟 最后一个时间戳减第一个
track-moving-min 分钟 0.9 km/h 以上的时间段
track-speed-kmh 公里/小时,一位小数 距离除以移动时间
track-start 本地日期时间,精确到分钟 最早的时间戳,按本机时区

单位写在属性名里,是因为属性里的裸数字本身不说明自己是什么。这样 Base 就能按距离排 序、筛出 track-ascent-m > 800,或者把一个月加起来。track-start 只精确到分钟也是同 一个道理:Obsidian 只把这种写法认成日期时间属性,后面再加上秒就变成纯文本了。

一个 Bases 表格列出七条步行和骑行,按 track-distance-km 排序,另有爬升、总时长与移动时间、配速和出发时间几列,距离和爬升下方是 Sum 汇总

三件需要知道的事:

  • **它只在你运行时运行。**之后再改轨迹文件,不会自动回头改写链接它的笔记——再运行一 次即可。
  • **一篇笔记就是一行。**笔记链接两个轨迹文件时,一组属性描述两者。距离、爬升和移动时 间相加;track-duration-min 是首尾时间戳之差,因此会把上午徒步和下午骑行之间的空档 也算进去;配速是总距离除以总移动时间,所以一个带时间的 GPX 配上一个没有时间的 GeoJSON,读出来会比实际快。这些都和这两段装在同一个文件里时完全一样。
  • **它只管当前正在写的这些名字。**这些之外的属性它从不读、不写、也不删;如果某个名字 正好撞上坐标属性或地名属性,或者两项数据用了同一个名字,命令会拒绝执行,而不是覆盖 过去。

设置 →轨迹轨迹属性里,每项数据占一行:它写出来叫什么,旁边一个开关,九项默认 全开。关掉某一项,命令就完全够不着它了:不会为它写任何东西,笔记里已经按它的名字写好的 属性也原样留着——关掉一项是在决定下次怎么写,不是让它去删已经有的东西。于是一本走路的 流水账可以只留距离和出发时间,其余七项一篇笔记也不沾。

全部关掉时就没什么可写了,命令会直接这么说,而不是报告自己写了 0 个属性。

每项数据那一行上都有自己的名字框,开关关掉时它是灰的。页面顶上的属性前缀一次决定所 有——填 ride 就是 ride-distance-km 那一套。某一行自己的框决定它自己,而且你填进去的 就是完整的属性名,前缀不再往前面拼:

距离: 13.62
爬升: 512
track-descent-m: 499

这是在「距离」那一行填了 距离、「累计爬升」那一行填了 爬升,而下降那一行留空,所 以仍然按前缀命名。留空的框里会显示这一项将会用的名字,好让你看清留空意味着什么;把框 清空就回到那个名字。

有一点要注意:改名不会去改笔记里已经写好的东西。命令只碰当前配置的这些名字,所以按旧 名字写进去的属性会一直留在那儿,要自己删——要么先改名再统计,要么事后清理掉旧的那一列。

链接的照片不参与统计:一张照片只有一个点,没有距离、爬升和时长。