9a11ceff9418bf6aa3bde976e7f58db2ec9fe59e
问题:往返行程(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 渲染、内容断言全过。
TripLog
家庭旅行记录
Languages
PHP
88.5%
CSS
11.5%