专题页的迷雾按专题圈的区域收口
以前专题的中心/半径只用来定视图,迷雾图层一直是全局的;管理页那句 「迷雾由地图按视野自动呈现,不需要单独圈选」其实是把「没做」写成了 「不用做」。现在专题圈了区域时,迷雾只在那个圆内显示。 做法是给迷雾单独一个 pane(zIndex 250,底图 200 之上)再对该 pane 做 clip-path: circle()——不能直接裁 tilePane,底图也在里面,会把地图一起挖空。 两个坑: - 圆心必须先 project() 到底图坐标系(与 fitCircle 一致),否则整体偏移; - 裁剪圆的注册必须排在 applyFit() 之后:视图未定时 latLngToContainerPoint() 会抛「Set map center and zoom first.」,把后续图层添加一起打断——实测 表现是 pane 建好了、迷雾瓦片一张都不出来,而且不报错。 迷雾是累积快照、没有时间维度,所以只按区域收口,不按专题的时间范围收口。 守卫 TestTopicFogIsClippedToArea 钉住两端与注册顺序。
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# rond-with-you 硬规矩(索引)
|
||||
|
||||
> 全文:`.workbuddy/memory/MEMORY-details.md`(38 节);验证机制:技能 `rond-fix-verify`;备份包解析/导出:技能 `rond-backup-parse`。本文件只做关键词索引——**新规矩写 details,别堆这里**。
|
||||
> 全文:`.workbuddy/memory/MEMORY-details.md`(46 节);验证机制:技能 `rond-fix-verify`;备份包解析/导出:技能 `rond-backup-parse`。本文件只做关键词索引——**新规矩写 details,别堆这里**。
|
||||
>
|
||||
> ⚠️ 本文件**按字符数**注入,硬上限 `MAX_MEMORY_CHARS = 1e4`(WorkBuddy `app.asar` 里 `getWorkingMemoryContent`;中文 1 字算 1,不是按字节)。超了会被 `substring(0,1e4)` 截断并写明「先整理再干活」——即整段尾部静默丢失。日常日志与本 details **不参与注入**,可以随便写。现值见 `wc -m`,留 20% 余量。
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
- 瓦片须与底图同 `crs`;带地图页须 `p.HasMap=true`。
|
||||
- `tileDigits` 补前导 0;`tileName` 尾缀 `len(s)-2` 单数字编号时为 -1 ⇒ panic;解码守卫 `len(name)<8`。
|
||||
- `fogIndexV` 必须 `atomic.Pointer`(普通指针=真 data race)。`fog_race_test.go`(-race)
|
||||
- **专题页迷雾按区域收口**(`opts.fogArea`)=**单独 pane** + `clip-path`:不能裁 `tilePane`(底图也在里面);圆心须 `project()` 到底图坐标系;⚠️ 注册必须排在 `applyFit()` **之后** —— 视图未定时 `latLngToContainerPoint()` 会抛「Set map center and zoom first.」,把后续图层添加一起打断(实测=迷雾整片消失、不报错)。`TestTopicFogIsClippedToArea`(四十五)
|
||||
|
||||
## 前端 / 模板 / CSS(details 六~八、十七、廿三、廿八D、卅七)
|
||||
- ⚠️ **对访客公开的块,措辞必须按身份分支**(`{{if .IsAdmin}}我的…{{else}}站长…{{end}}`):
|
||||
|
||||
Reference in New Issue
Block a user