Files
TripLog/templates/activities
laoyang 064e6b5a5e 路线地图:线允许重合,重合的图标沿线排开(批 15)
批 14 为了治「往返两段标记互相遮挡」,把线段沿法线左右错开画成双向车道。
实测偏移量太大,看着像画错了两条路,用户反馈「两条线偏离的非常多」。

改为**线不动、只动图标**:
- **线段一律按原始坐标画**(去掉 makeSegOffsetter 与法线偏移)。往返行程
  本来就是同一条路,两条线重合是正常的,用户也是这么要求的。
- **重合的图标沿这条线前后排开**:位移方向取线段**在屏幕上的方向**
  (makeSegDir 缓存「不分方向的同一段」的方向,A→B 与 B→A 共用),
  而不是固定往右挪 —— 看上去就是同一条路上跑了两趟,图标仍落在线上。
  线段太短装不下时才退到法线、最后水平兜底。
- 碰撞判定改用**中心距**(Math.hypot < 46,圆标直径 40):斜着挪 56px 时
  两个方盒子在角上仍相交、用矩形判定会说「还重叠」,于是白挪一步
  (图标被拉到 104px 远,看着像没关系)。
- 修一个候选列表的 bug:cand[0](原地不动)也要先判是否可用,跳过它会让
  **第一枚**标记也被无谓挪开一步。

验证:真 AMap 无头浏览器用例扩到 14 项,新增两条同向断言 ——
① 实线顶点必须**逐点等于** data-route 里的原始坐标(一旦又去偏移线段就会偏离);
② 每枚图标到自己那条线的屏幕距离 <= 22px(证明是沿线排开而不是被甩到线外)。
另留一张 map15.png 截图肉眼复核。本地全链 12 步全绿(渲染检查 356 项、
真 AMap 浏览器 14 项);远端 e2e 355 项 0 失败;部署静态断言 201 条、
双 PHP 渲染逐字节一致、内容断言全过。
2026-09-24 16:18:46 +08:00
..