Files
GhiVideo_v4/docs/history/2026-06-25_0909_스테이션바-종점역-대전조차장-누락수정.md
b23042andClaude Fable 5 d38b842e8d GhiVideo 소스 복제 — v4 작업 시작 기준
기존 GhiVideo 저장소 HEAD의 트래킹 소스 362개 파일을 복제.
(node_modules·storage·빌드 산출물·대용량 미디어는 .gitignore 규칙대로 제외)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 14:32:51 +09:00

39 lines
1.9 KiB
Markdown

# 스테이션바 종점역(대전조차장) 누락 수정 + 라벨 우선순위 정리
**소요 시간**: 25분
**Context 사용량**: input 약 130k / output 약 9k tokens
## 증상
하단 스테이션바의 마지막 항목에 종점역 **대전조차장**(한국철도공사대전조차장역)이 표시되지 않음.
## 원인
[Timeline.tsx](../../client/src/stationbar/components/Timeline/Timeline.tsx)의 구조물 라벨 겹침 방지 로직:
```ts
const structs = dedup(structures, 130);
```
기존 `dedup`은 px 오름차순으로 정렬해 **130px 클러스터마다 가장 왼쪽 1개만** 유지했다.
실데이터(하행)회덕-대전조차장 v2.0) 기준:
- 종점역 `대전조차장역` 좌표: lat 36.371101 / lon 127.421776
- 그 직전 `법동가도교`(상·하·인상 3건): lat ~36.3730 (≈200m 앞, 트랙 1509.5px 중 ~70px)
→ 법동가도교가 먼저(왼쪽) 유지되고, 130px 이내인 종점역이 dedup으로 탈락.
## 사용자 확정 규칙 (라벨 겹침 우선순위)
- **화면상(영상) 라벨**: 겹침 처리 동작 + 겹칠 경우 **KAKAO_RAIL(철도역/역사) 우선 표출**.
- **하단 스테이션바**: 겹쳐도 무방 → 역사는 dedup 대상에서 제외, 항상 표출.
## 조치
1. 하단 스테이션바 [Timeline.tsx](../../client/src/stationbar/components/Timeline/Timeline.tsx)
- 역사(역, KAKAO_RAIL)는 dedup에서 제외하고 **항상 표출**.
- 교량/터널만 기존 130px 겹침 방지 유지(라벨 텍스트가 길어 겹침 방지 필요).
2. 영상 오버레이 [StationOverlay.tsx](../../client/src/components/overlay/StationOverlay.tsx)
- POI 겹침 억제 정렬을 `dist`만 → **railRank(철도역/역사=0) → dist** 로 변경.
- 겹치면 KAKAO_RAIL 라벨이 유지되고 일반 POI가 숨겨짐.
## 검증
- `tsc --noEmit -p client/tsconfig.json` → 통과(exit 0)
- 실데이터 좌표·거리 계산으로 클러스터링 원인 확인