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

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 16:37:57 +09:00

41 lines
2.4 KiB
Markdown

# 교량(신대천교(복)) 영상 오버레이 라벨 표출
**날짜**: 2026-06-24
**수정 파일**: `client/src/components/overlay/StationOverlay.tsx`
## 증상
영상에서 다리 위가 신대천교(복)인데 **신대천교(복) 라벨이 영상에 표시되지 않음**.
## 원인 (버그 아님 — 의도된 라우팅)
- 신대천교(복)은 `building/03)교량.csv` 출신 **카테고리 `교량`** 구조물
(`_POI.csv`/지장물엔 없음 — [2026-06-22_POI투영오차-개선.md](2026-06-22_POI투영오차-개선.md) §13 참조).
- §15에서 구조물 표출 위치를 분리: **교량(03)·터널(04)=하단 스테이션바**, 구교(06)·지장물·_POI=영상.
- `StationOverlay`의 영상 구조물 필터가 `category === '구교'`만 통과시켜 `교량`은 영상에서 제외됨.
## 조치 (사용자 결정: 영상은 라벨 모두 표출 / 시설등급 필터는 스테이션바 전용)
`StationOverlay.tsx`의 영상 구조물 필터를 **모든 선로 구조물(교량/터널/구교)** 허용으로 변경:
```diff
+ const OVERLAY_STRUCT_CATEGORIES = new Set(['구교', '교량', '터널']);
...
- s.category === '구교' && typeof s.lat === 'number' && typeof s.lon === 'number'
+ s.category != null && OVERLAY_STRUCT_CATEGORIES.has(s.category) &&
+ typeof s.lat === 'number' && typeof s.lon === 'number'
```
- 교량/터널/구교 모두 기존 POI 파이프라인(평면 거리필터·title 보간·EMA·드래그/DEM 보정)으로 표출.
- 역사(철도역, type='station')는 미포함 → 스테이션바 전용 유지.
### 시설등급(시설종별) 필터 — 영상 무관, 스테이션바 전용 (기존 구조 확인)
- grade 필터는 `isGradeVisible(s.grade, gradeFilter)`**StationBar.tsx**·**RoutePanel.tsx에만** 적용.
영상 오버레이는 grade를 보지 않음 → **영상은 시설등급과 무관하게 항상 모두 표출**(요구사항 그대로).
- 따라서 코드 변경은 영상 필터(위)만으로 충분. 스테이션바 측은 미변경.
## 참고/한계
- 영상 POI 거리필터 기본값(앞 60m/옆 40m)이 적용됨. 신대천교(복)이 멀리 있으면
카메라 파라미터 패널의 **POI 앞쪽/옆쪽** 슬라이더를 키워야 보일 수 있음.
## 검증
- `npm run build -w client` (node20) tsc + vite build 통과.
**소요 시간**: 약 20분
**Context 사용량**: input ~95k / output ~6k tokens