제주 드론 도로영상 지원: 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,30 @@
# 2026-07-09 카메라 focal 자동 적용 조건 개선
**소요 시간**: 4분
**Context 사용량**: input 460k / output 3k tokens
## 문제
"드론 카메라 속성이 카메라 파라미터에 적용된 건가?" 확인 요청.
직전 구현은 "저장된 보정(localStorage calib)이 있으면 자동 적용 건너뜀"이었는데,
**보정 자동저장은 폴더를 열기만 해도 기본 params 로 저장**되므로(800ms 디바운스 저장 effect가
첫 로드에도 실행) 제주 데이터셋은 이미 calib 이 존재 → 감지 focal(29.9mm)이 적용되지 않았을
가능성이 높았음.
## 수정 — StationOverlay.tsx 자동 적용 조건
- 기존: 저장된 calib 존재 → 무조건 건너뜀
- 변경: **사용자가 f 를 실제로 튜닝한 경우(저장된 f ≠ 기본값 24)만 유지**, 그 외
(첫 로드 / 저장은 됐지만 f 기본값 그대로)는 감지값 자동 적용
- setParams 함수형 업데이트 안에서 판단 → calib 복원값 기준으로 정확히 비교
## 확인 방법 (사용자 안내)
- 새로고침 → 폴더 재선택 → 카메라 파라미터 패널: **f = 29.9mm** 이고
📷 줄에 "DJI ZenmuseP1 · 29.9mm" 표시되면 적용된 것
- 콘솔 로그: `[camera] DJI ZenmuseP1 감지 → focal 29.9mm 자동 적용`
- f 를 이미 직접 튜닝했던 경우엔 유지되며, [적용] 버튼으로 감지값 교체 가능
## 검증
- tsc+vite 빌드 통과, 54000 포트 새 번들(index-Ba4WSfaE.js) 서빙