laoyang
9a11ceff94
路线地图:重合的标记与线段各自让开(批 14)
问题:往返行程(A→B 去程 + B→A 返程)两段的**中点完全相同**、线段也
完全重合,后画的那一枚会把先画的整枚盖住,看起来只剩一段。
两类重合分别处理:
- **线段重合**:同一段(不分方向,A→B 与 B→A 视为同一键)第 2 次起
沿**法线**错开(长段按比例、短段给下限),像双向车道各占一边。
- **标记重合**:不再只比坐标字符串 —— 坐标不同但屏幕上挨着的两点
(相差几公里的两个地点,在"看全国"的缩放级别下像素位置几乎一致)
同样是重合。改为先问地图「这个经纬度现在在屏幕哪个像素上」
(map.lngLatToContainer),再用贪心排布把撞上的标记按像素左右挪开。
- 到达地红点:同一点位只画一个(往返两端本来就是同一个)。
- **缩放后重排**(zoomend):缩放会改变标记间的屏幕距离,缩小时原本
分开的标记可能又叠回去。重排时**不再 setFitView**(fromZoom 标志),
否则与缩放事件互相触发、还会把用户手动缩放好的视野拉回去。
验证:_page11.php 夹具新增返程节点(哈尔滨 → 青岛),_map12.js 新增
「两两求矩形交集」的几何断言 —— 它先抓出真重合(34×39px 重叠),
修复后 0 重叠并确认往返两枚并排 46px、相邻两枚错开 52px。
本地全链 12 步全绿(渲染检查 354 项、真 AMap 浏览器 13 项);
远端 e2e 353 项 0 失败;部署静态断言、双 PHP 渲染、内容断言全过。
2026-09-24 15:48:18 +08:00
..
2026-09-24 15:48:18 +08:00
2026-09-22 22:03:08 +08:00
2026-09-22 22:03:08 +08:00
2026-09-22 22:03:08 +08:00
2026-09-24 12:36:01 +08:00
2026-09-22 22:03:08 +08:00
2026-09-22 23:09:37 +08:00
2026-09-22 22:03:08 +08:00
2026-09-23 00:01:05 +08:00
2026-09-22 22:03:08 +08:00
2026-09-23 09:11:42 +08:00
2026-09-23 09:11:42 +08:00
2026-09-23 16:22:01 +08:00
2026-09-23 09:11:42 +08:00