记忆:显示区编辑器必须有长度参照(比例尺 + 跨度标注)
This commit is contained in:
@@ -33,3 +33,17 @@
|
||||
「pane 不存在」,`--wait 8` 才稳。别把「还没初始化」当成「功能没生效」。
|
||||
- `--eval-file` 里写 `(async function(){...})()` 却**不加 `--await`**,CDP 拿到的是 Promise,
|
||||
`returnByValue` 序列化成 `{}` —— 看着像脚本没执行,其实是漏了参数。
|
||||
|
||||
### 处置:补「参照物」(提交 6aee7e4)
|
||||
|
||||
用户选定「加比例尺 + 标注直径」。几何逻辑**一行没动** —— 因为问题本来就不在几何:
|
||||
|
||||
- 编辑器地图加 `L.control.scale`(公制,`position:'bottomleft'`,跟前台一致)。
|
||||
- 新增纯函数 `spanLabel(radiusKm)`:半径 →「约 40 公里宽」(直径);<1 公里改用米,
|
||||
免得出现「约 0.1 公里宽」。圆列表每行标,**「新圆半径」旁边也实时跟着变**(落点前就能判断)。
|
||||
- 守卫 `TestTopicAreaEditorGivesSizeReference` 钉住比例尺与跨度标注(变异验证过)。
|
||||
⚠️ 它当场抓到我自己的疏漏:模板的 init 调用漏传 `spanId`,靠脚本默认值兜着 ——
|
||||
已改成显式传参(**新增 opts 时记得在模板里也写出来**,否则守卫和外人都看不出这层耦合)。
|
||||
|
||||
教训:这次「bug」的本质是**界面缺参照物**,不是算错。以后遇到「大小看起来不对」类反馈,
|
||||
先问「用户手上有什么可以量」,而不只是去验算几何。
|
||||
|
||||
@@ -1229,6 +1229,15 @@ HTML,一行里必然带 `</script>`,一拒就把正常用法挡死了(我
|
||||
小坑:半径输入框得套一层**定宽容器**(`.area-km-box`)——站点全局 input 规则是
|
||||
`width:100%` 且带 10 个 `:not()`(特异性 (0,11,1)),直接给 input 写宽度压不过。
|
||||
|
||||
⚠️ **给几何参数配「参照物」**:2026-10-13 用户反馈「圆无论怎么缩放大小都一样、20km 却覆盖了
|
||||
整个南宁」,实测三处画圆(编辑器 `L.circle`、改半径把手、前台迷雾裁剪圆)**全是地理锚定、
|
||||
随缩放正确变化**,半径值也确实生效 —— 复现不出「大小不变」。真正缺的是**参照物**:
|
||||
编辑器地图以前没有比例尺(前台一直有),圈圆时只能靠地名猜。
|
||||
⇒ 规矩:**编辑器地图必须有 `L.control.scale`,且半径旁要标出跨度**(`spanLabel()`:
|
||||
半径 20 →「约 40 公里宽」;<1 公里改用米,别写「约 0.1 公里宽」)。
|
||||
守卫 `TestTopicAreaEditorGivesSizeReference`。教训:遇到「大小看起来不对」,
|
||||
先问「用户手上有什么可以量」,而不是只去验算几何。
|
||||
|
||||
⚠️ **`<input type="number">` 的 `step` 是相对 `min` 递增的**,不是「`step` 的整数倍」:
|
||||
`min=0.05` + `step=0.5` 的合法值只有 0.05/0.55/1.05…,用户填 3 或 3.5 会被 Chrome 判非法、
|
||||
提交时弹「请输入有效值。两个最接近的有效值分别为 2.55 和 3.05」。**这是浏览器原生提示,
|
||||
|
||||
Reference in New Issue
Block a user