제주 드론 도로영상 지원: DJI 로그 어댑터·분할영상 연속재생·카메라 자동감지·오버레이 개선

- 제주 DJI 시간기반 비행로그(CSV) 파싱 어댑터: 세그먼트 창 정렬, 가상 fps 환산
- 분할 영상(이름 오름차순) 연속재생 + 좌상단 영상목록 콤보(선택 재생), 세그먼트별 드론 로그 재정렬
- KML 다중 파일 병합 파싱: STA 체이니지 측점(71개) + 지장물 신포맷(타입/이름/텍스트박스_색상)
- 시설물 라벨: 지정색 배경 박스 + 흰 글자, 팝업 중앙 정렬, 호버 구간 깜빡임 수정
- 카메라 자동감지(djmd: ZenmuseP1, focal 29.9mm) + <영상명>.camera.json PC 저장/폴더 자동 적용
- Yaw 자동추정(GPS 진행방위 기반) + 라벨 드래그 Yaw 역산 모드
- 스테이션바: GPS 이동거리 진행도(호버 시 정지), 노선밖 거리 표기, 원거리 구조물 마크 제외
- 서버: /api/camera 라우트, ecosystem 포트 54000·제주 데이터 경로
- docs/history: 작업 이력 21건

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-09 20:58:49 +09:00
co-authored by Claude Fable 5
parent d38b842e8d
commit 84f4921826
32 changed files with 1833 additions and 110 deletions
@@ -0,0 +1,38 @@
# 2026-07-09 스테이션 배지 노선 밖(접근 구간) 표기
**소요 시간**: 6분
**Context 사용량**: input 580k / output 3k tokens
## 문제 (스크린샷 제보)
영상 54.8초(커서는 정상 진행 중)인데 스테이션 배지가 "0k000"에서 안 변함.
## 원인 (버그 아님 — 표기 문제)
이 비행은 노선 시작점(0k000)에서 남서쪽 ~700m 밖에서 이륙해 **87초에 노선 진입**.
진입 전에는 "가장 가까운 측점 = 0k000"이라 배지가 0k000으로 고정되는 게 계산상 맞지만,
사용자는 고장으로 인식 → 접근 구간임을 배지에 드러내기로 함.
## 수정 — client/src/stationbar/StationBar.tsx
- `projectChainageDist` 신설: 체이니지 + **폴리라인까지 수평거리(distM)** 반환
(기존 `projectChainage`는 래퍼로 유지 — 구조물 마크 등 기존 호출부 무변경)
- `ViewedPoint.offM` 추가(프레임별 노선 이탈 거리), `realOffM` memo 추가
- 배지 표기: 노선에서 **60m 이상 벗어난 구간은 "노선밖 ○○m"** 로 표시(거리 실시간 갱신),
60m 이내면 기존 체이니지(0k000, 0k110, …) 표시
## 검증 (실데이터 시뮬레이션, 세그먼트 1)
| 시점 | 배지 |
|------|------|
| 10s | 노선밖 708m |
| 54.8s (스크린샷) | 노선밖 346m |
| 87s (진입) | 0k000 |
| 100s / 130s / 190s | 0k110 / 0k410 / 1k010 |
→ 진입 후 배지 정상 진행 확인. tsc+vite 빌드 통과, 새 번들(index-DyILp3c8.js) 서빙.
## 다음 단계 참고
- OFF_ROUTE_M=60m 고정 — 드론이 노선 옆으로 크게 이격 비행하는 데이터셋이면 route.json
파라미터화 검토