| | |
| | | > **协作约定(2026-08-31)**:说「提交」= 本地 commit + 推送到远端 git(origin main,Gitblit),不再只做本地 commit。 |
| | | |
| | | ## 最新(2026-10-04) |
| | | ### 10-04 深夜:折线数值标签回到贴近本点(v35,待用户验收) |
| | | |
| | | - **用户反馈**:v31「避开折线」版本不如上一版 v27 —— 虽然标签不压线了,但很多标签离自己的数据点太远,一眼看不出标的是哪个点。要求回到贴近本点的效果。 |
| | | - **新问题与旧需求的冲突**:更早的原始诉求是「数字压线看不清」;这次诉求是「数字必须贴近本点」。两者并存,必须同时满足。 |
| | | - **实现(`HolidayTrendChartService`)**: |
| | | - 标签排版**完整回退到 v27 算法**:按同日点位距离做代价(`ownDistance ×10`),候选含近/远的上、下、左、右及四角,动态规划保证同日标签与点位上下顺序一致(`lineLabelCost`、`lineLabelCandidates`)。v31 的线条掩膜、Chamfer 距离场、颜色亲和项全部移除。 |
| | | - **新增粗白描边(halo)** 解决「压线看不清」:`drawLabelWithHalo` 用 `TextLayout` 取字形轮廓,先以白色 `HALO_OUTLINE_WIDTH=4.0f` 圆角描边,再用本色填充。数字即使落在折线上也清晰可读,从而允许标签贴回本点。折线图、堆叠图外置标签、饼图标签统一走该方法。 |
| | | - 顺带清理调试遗留:删除 `LABEL_DEBUG`/`CHART_SEQ`/`TRENDDBG` 打印,以及不再使用的 `lineNormal(...)` 与 `DayLabel.normalX/normalY`。 |
| | | - **量化验证(RapidOCR 标签包围框中心 ↔ 真实数据点坐标)**:标签到本点平均距离 v27=`36.8px`、v31=`53.2px`、v35=`36.7px`(越小越贴近本点)。v35 与用户认可的 v27 基本一致,明显优于被否的 v31。 |
| | | - **其余验证**:`mvn compile`/`mvn test` 通过(无编译告警遗留);Word COM 8 页 15 图(1+2×7);RapidOCR 复检 12 张折线图数值标签包围框重叠数 = 0;`label_affinity` 复检图 11 每个数据标签到本线 3~8px 且本线是最近线(无「CLOSER TO 其他色」);放大 6× 复核图 11 左上标签确为 `630.99`(低分辨率 OCR 曾误读为 `1630.99`)。v27↔v35 像素差约 1%,集中在标签处,即白描边生效且未破坏折线。 |
| | | - **产物与状态**:`_tmp_holiday_verify/holiday_trend_2026-10-04_v35.docx`;下载副本 `C:\Users\jcxiong\Downloads\2026年十一假期全省综合运输客流量走势图(修改版-数字贴近折线-白边清晰).docx`。未导入、覆盖或重导任何数据。待用户验收;验收前不提交、不推送;现有 `deploy/traffic-audit-deploy-20261004.zip` 仍是 v24 行为,验收后需重建。 |
| | | |
| | | ### 10-05:走势图 v35 验收通过 + 单端口瘦包发布( -NoFrontend ) |
| | | |
| | | - **验收**:v35(折线数值标签回到贴近本点 + 白描边)2026-10-05 用户验收通过。 |
| | | - **打包需求**:服务器单端口部署,前端本次未变动,要求发布包不含前端以缩小体积。 |
| | | - **打包工具**:`pack-deploy.ps1` 新增 `-NoFrontend`。开启后不执行 npm 构建、不要求 `traffic-audit-web\dist`、不生成 `frontend\`、不复制 `backend\web`;其余(占位符构建 + 去密自检 + db + docs + README + WinSW)照旧。部署机保留上一版 `backend\web`,本次只替换 jar。 |
| | | - **发布包**:`deploy/traffic-audit-deploy-20261005/`(311 文件 / 105.71 MB;zip 83.60 MB)。已核对:无 `frontend/`、无 `backend\web`;jar 内置配置全占位符(去密自检通过);包内 `HolidayTrendChartService.class` 与 `target/classes` 一致(即含 v35 代码)。体积说明:前端 dist 仅约 4.8 MB,包体主要来自 jar(56.3 MB)与 WinSW(17.4 MB)。 |
| | | - **部署注意**:本包不含前端,部署时不要删除部署机原有 `backend\web\`,否则页面 404;只覆盖 jar(及按需 application.yml)。 |
| | | - **状态**:已打包,待用户上传到服务器。 |
| | | |
| | | ### 10-04 深夜:折线数值标签避开折线并贴近本线(v31,待用户验收) |
| | | |
| | | - **用户反馈(领导看后,两轮)**:① 各年份数字离本线有远有近,希望贴近各自色线且不错乱;② 仍有数字压在折线上看不清(第一轮只是“贴近”,标签会落在线上)。用户建议:调纵轴刻度拉开折线、或加左右避让让标签不压线。 |
| | | - **实现(`HolidayTrendChartService`)**: |
| | | - 标签排版改为「动态规划 + 线条像素避让」。图表先画折线和标记,再把所有系列颜色像素(容差 45)做成掩膜,对每个候选标签位置统计其覆盖的线条像素数,`×700` 重罚——数字不再压线。 |
| | | - 为每条系列建立 Chamfer 距离场(到该色最近像素的距离)。代价新增两项:`max(0, 自己那条线的距离-3)×40`(把标签拉回本线旁,防止飘远)与颜色亲和项 `max(0, 自己线距 - 别的线距 + 4)×200`(要求本线是最近的线,避免贴到别的系列)。 |
| | | - 旧的「离别的同日点位更近」惩罚由 `×5000` 降到 `×400`,避免它压倒亲和项;`ITEM_LABEL_GAP` 12→10;候选含近/远的上、下、左、右及四角。 |
| | | - 保留同日标签与数据点一致的上下顺序,避免标签与折线上下反转。 |
| | | - **调参过程提示**:v27(只按点位距离排序)→ 标签压线;v28(只加覆盖像素惩罚)→ 标签离本线、贴到别的色线旁;v31(覆盖惩罚 + 本线距离 + 颜色亲和)→ 两者兼顾。验证标签是否“贴错线”不能只看 OCR 包围框到异色的距离:相邻的异色**标签**会被误判为异色**线**,必须肉眼核对整图。 |
| | | - **验证**:`mvn test -f traffic-audit-server\pom.xml` 通过。真实库只读生成 `_tmp_holiday_verify/holiday_trend_2026-10-04_v31.docx`;Word COM 8 页 15 图(1+2×7)。RapidOCR 复检 15 张图数值标签包围框重叠数为 0。肉眼核对图 1(跨区域人员流动量)、图 2(累计)、图 4(自驾)、图 6(水路)、图 9(高速)、图 11(车流总量):数值标签均离开折线、位于各自色线旁、颜色对应正确;图 11 的 630.99/601.04/571.31 分别紧贴蓝/红/绿折线。 |
| | | - **产物与状态**:`C:\Users\jcxiong\Downloads\2026年十一假期全省综合运输客流量走势图(修改版-数值标签避开折线).docx`。未导入、覆盖或重导任何数据。待用户验收,验收前不提交、不推送;现有 `deploy/traffic-audit-deploy-20261004.zip` 仍是 v24 行为,需验收后重建。 |
| | | |
| | | ### 10-04 晚:走势图 3 项坐标轴调整(v24,用户已验收) |
| | | |
| | | - **用户修改项**:① 坐标轴单位(万人次、万辆次、公里/小时、拥挤度、日期)改成和刻度一样的颜色;② 两个堆叠图的坐标轴改成与其他图一样的黑色;③ “万人次/占比”继续放在堆叠图右上角。 |