跳转到内容

给 Bases 地图的图钉设置图标和颜色

地图上的每篇笔记都可以有自己的图标和颜色。本页讲在哪里设置、哪些图标名画得出来, 以及图钉不对劲时该查什么。

Marker icon 和 Marker color 是 Obsidian 自带的地图选项。装不装 Advanced Maps 都能用,装了也不会影响你设置它们。基础用法 Obsidian 官方在 Maps 插件的示例库 里给了一份完整例子。

打开一个 Base,切到地图视图,点视图名,展开 Markers。Base 是 Obsidian 里按筛选 条件收集笔记和文件,再用表格或地图显示出来的一种文件。

两个选项填的都是属性,不是字面值。任何笔记属性或 Base 公式都行,只要它的值能当 纯文本读。笔记属性来自 frontmatter,也就是笔记顶部那段属性区。

选项 填什么 期望的值
Marker icon note.icon、formula.我的图标 之类 一个 Lucide 图标名,Lucide 是 Obsidian 图钉使用的图标集——Lucide 图标库
Marker color note.color 之类 任何合法的 CSS 颜色值

两个属性都不设的笔记也有图钉:一个填了 --bases-map-marker-background(地图的默认 图钉色)的圆,中间一个小圆点。

画得出来的图标名,和静默画不出来的

Section titled “画得出来的图标名,和静默画不出来的”

三列真实的地图图钉:五个画出了图标,四个只剩没有图标的实心圆,两个退回了小圆点

属性里的值 结果
star Lucide 的 star 图标
lucide-star 同一个图标——lucide- 前缀是被接受的
map-pin Lucide 的 map-pin 图标
只有一项 star 的 YAML 列表 star 图标——单项列表会按它自己的文本读取
Star 没有图标的实心圆——名字区分大小写
map_pin 没有图标的实心圆——Lucide 用 - 连词,从不用 _
🌲 没有图标的实心圆——emoji 不是图标名
任何 Lucide 没有的名字 没有图标的实心圆
属性缺失或为空 默认的小圆点
字面量文本 null、undefined 默认的小圆点

没有图标的实心圆,说明名字拼错了;小圆点则说明值没填。看一眼图钉,就知道该查哪边。

Marker color 的值原样交给 CSS,所以 CSS 认得的写法都能用:

color: red
color: '#e03131'
color: rgb(224 49 49)
color: var(--color-purple)

var() 颜色是按当前主题解析的,所以它自己就会跟着亮色/暗色模式变。想和 Obsidian 其余部分保持一致,用它自带的强调色和颜色变量最省事。

图钉内部的图标颜色不是按笔记走的。所有图标统一用 --bases-map-marker-icon-color 画,一张地图一个值,可以用 CSS 片段改:

.workspace-leaf-content[data-type='bases'] {
--bases-map-marker-icon-color: #fff8e7;
}

Base 公式是一小段表达式,能给出笔记本身没存的值。有了公式,笔记本身可以一个图标都不 存,这正是这两个选项填属性而不填值的原因。

按另一个属性判断:

if(note.rating >= 4, "star", "circle")

从链接的笔记继承,这样改一篇类型笔记就能重设所有指向它的图钉:

list(type)[0].asFile().properties.icon;

然后把公式选成对应属性。写进 .base 文件是这样:

formulas:
Rated icon: if(note.rating >= 4, "star", "circle")
views:
- type: map
name: Map
coordinates: note.coordinates
markerIcon: formula.Rated icon
markerColor: note.color

有些笔记里可能已经写成了 Star 或一个 emoji。写一条把这些值映射到真实 Lucide 名的 公式,一次就能修好所有图钉,不用改任何一篇笔记。

Advanced Maps 是往原生地图上加图层,原生图钉照旧。你的图标和颜色仍然由 Obsidian 按你 配置的样子绘制。有两点值得知道:

  • 会重叠的笔记图钉会散开成环,每个图钉保留自己的图标和颜色。散开只是屏幕上的偏移, 图钉存的坐标不会变;Fan out overlapping pins 可以关掉它。见 周围视图与导航。
  • 照片缩略图和轨迹线是各自独立的图层,所以一个 Base 里同时放笔记、照片和 GPX,三者 都会显示,而你的图钉不受影响。
现象 原因
实心圆,里面什么都没有 图标名不是 Lucide 的名字。检查大小写,以及 - 和 _。
本该有图标,却是个小圆点 这篇笔记的属性是空的,或者解析成了 null。
所有图钉一个颜色 Marker color 没设,所有图钉都用了地图默认色。
一个突兀的近黑或近白图钉 颜色值不是合法 CSS,被解析成了主题的文字颜色。
改完笔记没有任何变化 属性写了,但没在 Markers 里选上。