- 클라이언트(React/Vite): Video.js 플레이어, 하단 스테이션바, POI/구조물 영상 오버레이, 카메라 파라미터 보정, 미니맵/RoutePanel - 서버(Express): Range 스트리밍, HLS 변환, 프레임 추출, tus 업로드, 주석 API - 최근 작업: 스테이션바 종점역 표출/양끝 정렬/미도착(재생불가) 표시, POI 라벨 '구분' 우선·컴팩트 팝업·겹침제외 토글·동일좌표 다중행, 진행방향(상/하) 우선 표출, 커서 배지 크기·픽셀 떨림 개선 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
스테이션바 첫·마지막 역 양끝 고정 + 누락 원인(빌드) 해결 + pm2 배포
소요 시간: 70분 Context 사용량: input 약 320k / output 약 22k tokens
1. 대전조차장 누락의 진짜 원인 = 빌드 미반영
- 데이터(v3.0 KMZ)·파싱(parseKmz)·코드 수정 모두 정상이었음. 실데이터 시뮬레이션으로 마커가 px 1777 생성·유지됨을 검증.
- 화면에 안 뜬 이유: 서버가 6/24 빌드된
client/dist를 서빙 → 6/25 수정 미반영. - 조치:
npm run build -w client재빌드 후pm2 start ecosystem.config.js(PORT 55000). 정상 표출 확인.
2. 렌더 필터 수정 (앞 단계, 누적 반영)
- Timeline.tsx: 역사(역, KAKAO_RAIL)는 dedup 제외 → 항상 표출.
- StationOverlay.tsx: POI 겹침 억제 정렬을 railRank(철도역/역사 우선)→dist 로 변경.
3. 첫·마지막 스테이션 양끝 고정 (이번 요청)
- StationBar.tsx
structureMarks에snapStationEnds헬퍼 추가.- 역사 마커 중 최좌측 → TRACK_START_PX(297), 최우측 → TRACK_END_PX(1806.5) 로 스냅.
- 역사 2개 미만이면 미적용. 동일 역 복수 통과 시 극단 마커만 이동.
- 두 return 경로(storeStructures / POI 폴백) 모두 적용.
- 예: 회덕화물역(353.9→297), 한국철도공사대전조차장역(1777→1806.5).
검증
tsc --noEmit통과, 클라이언트 재빌드 성공, pm2ghiVideoonline, HTTP 200.
운영 메모
- 실행: nvm Node 20 활성화 →
npm run build -w client→pm2 restart ghiVideo. - 서버는
client/dist정적 서빙 → 소스 수정 후 반드시 클라이언트 재빌드해야 화면 반영됨.