# 2026-07-09 Yaw 자동추정 + 드래그 역산 + 카메라값 PC 저장

**소요 시간**: 15분
**Context 사용량**: input 850k / output 8k tokens

## 작업 내용 (요청 3건)

### 1. Yaw 자동 추정 버튼 (2번 방안)

- 카메라 파라미터 패널 'Yaw ±' 아래 **[Yaw 자동추정 (비행경로 기준)]** 버튼
- 알고리즘: 전진 구간(속도≥2m/s)에서 GPS 진행 방위(1초 창 평활) − 짐벌 헤딩 차이 수집
  (|차|≥60° 는 옆보기 촬영으로 간주 제외) → **중앙값을 Yaw± 로 설정**
- 실데이터 검증: 세그먼트1 유효 샘플 1889개, 중앙값 **−16.3°**
  — 사용자가 이전에 수동 튜닝했던 −16.5° 와 거의 일치 (알고리즘·기존 튜닝 상호 검증)

### 2. Yaw 드래그 역산 모드 (3번 방안)

- POI 편집 섹션에 **[🧭 Yaw 보정 — POI를 실제 위치(좌우)로 드래그]** 모드 추가
  (편집/세로화각 모드와 상호 배제, 기존 fovMode 패턴 재사용)
- 역산: θ0=atan2(Xc,Zc)(현재 투영각) vs θ1=atan((px*−0.5−cx0)·sW/f)(드롭 지점 요구각)
  → `yawOffset += (θ0−θ1)`. |Δ|>45° 는 오조작으로 거부
- 게이팅(커서/히트/팝업/드래그 피드백) 4곳에 yawMode 연결

### 3. 카메라값 저장: 서버 → **사용자 PC 다운로드**

- 📷 줄 버튼 '서버에 저장' → **[PC에 저장]**: 현재 파라미터 전체(Yaw± 보정 결과 포함)를
  `<영상이름>.camera.json` 으로 브라우저 다운로드
- 받은 파일을 영상 폴더에 넣으면 폴더 선택 시 최우선 자동 적용(기존 로더 그대로)
- 서버 라우트(/api/camera)는 유지하되 UI 에서는 미사용

## 검증

- tsc+vite 빌드 통과, 새 번들(index-D5ltlp17.js) 서빙
- Yaw 자동 추정 실데이터 시뮬레이션 −16.3° (수동값 −16.5° 부합)

## 사용 흐름 (사용자 안내)

1. [Yaw 자동추정] → 대략 정렬 2. [🧭 Yaw 보정] 모드에서 라벨 하나를 실제 지물로 드래그 → 미세 조정
3. [PC에 저장] → 받은 `<영상이름>.camera.json` 을 영상 폴더로 이동 → 이후 폴더 선택만으로 적용
