초기 커밋: 스테이션(측점) 기반 주행영상 플레이어

- 클라이언트(React/Vite): Video.js 플레이어, 하단 스테이션바, POI/구조물 영상 오버레이, 카메라 파라미터 보정, 미니맵/RoutePanel
- 서버(Express): Range 스트리밍, HLS 변환, 프레임 추출, tus 업로드, 주석 API
- 최근 작업: 스테이션바 종점역 표출/양끝 정렬/미도착(재생불가) 표시, POI 라벨 '구분' 우선·컴팩트 팝업·겹침제외 토글·동일좌표 다중행, 진행방향(상/하) 우선 표출, 커서 배지 크기·픽셀 떨림 개선

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-25 16:37:57 +09:00
co-authored by Claude Opus 4.8
commit 78fc090360
214 changed files with 27897 additions and 0 deletions
@@ -0,0 +1,28 @@
# 시/종점 역명 = route.json start/endStationName + 구조물 스냅 제거 + 종점 역명 안 잘림
**날짜**: 2026-06-24
**수정 파일**: `client/src/stationbar/StationBar.tsx`,
`client/src/stationbar/components/Timeline/Timeline.tsx`,
`client/src/stationbar/components/Timeline/Timeline.module.scss`
**관련**: [2026-06-24_2032_스테이션바시종점-routejson-name분리.md](2026-06-24_2032_스테이션바시종점-routejson-name분리.md)
## 요구 (갱신)
- 시작 = route.json `startStationName`, 끝 = `endStationName`.
- 구조물 아이콘/라벨은 이전처럼(실제 위치).
## 조치
1. **시/종점 역명**: name 분리 → `startStationName`/`endStationName` 직접 사용으로 되돌림(없으면 측점 첫/끝 폴백).
→ route.json 에 원하는 값(예 startStationName:"회덕", endStationName:"대전조차장")을 넣으면 그대로 표시.
2. **구조물 px 스냅 제거**: 첫/마지막을 바 양끝으로 옮기던 로직 삭제 → 구조물은 실제 통과 px 그대로.
(시/종점 역명이 바 끝을 담당하므로 구조물 스냅 불필요. 시작점 겹침도 해소.)
3. **종점 역명 안 잘림 유지**: `.stationEnd``left: track-end+40``right: 8px` 로 변경
(긴 종점명 "대전조차장" 등도 우측 끝 기준 안쪽으로 펼쳐 화면 밖 안 잘림).
## 유지 (이전 사용자 요청)
- 구조물명 긴 건 2줄/짧은 건 1줄(width 140), 아이콘 가운데 정렬, 폰트 16.5px, 겹침간격 130.
## 검증
- `npm run build -w client` (node20) tsc + vite build 통과.
**소요 시간**: 약 8분
**Context 사용량**: input ~1410k / output ~5k tokens