# KMZ → 영상 표출 전 과정 그림 설명서 작성

**소요 시간**: 약 20분
**Context 사용량**: input ~95k / output ~14k tokens

## 요청

- "KMZ 파일을 시작으로 동영상에 위치시키기까지의 과정을 논리적으로 그림과 함께 자세히 설명"

## 산출물

- `docs/쉬운설명_KMZ에서_영상표출까지_전과정.md` (+ .html / .pdf, md2docs.sh)
- SVG 도식 6점: 전체 파이프라인 / KMZ 내부구조·Placemark 해부 / 표고 datum / 좌표 3단 변환 / 핀홀 투영 / cover 정렬·평활

## 문서 구성 (8단계 + 보너스)

1. KMZ 압축 해제 — fflate `unzipSync`, `.kml` 우선 (`geoData.ts parseKmz` L295)
2. KML 폴더 트리 재귀 + Placemark 수집 (`walk` L376, `parseKmlDescProps` L276)
3. 폴더명 기반 POI/구조물 분류 — 교량·터널·구교=구조물, 지장물·출입문=POI, KAKAO_RAIL=POI+역사 (`handlePlacemark` L331)
4. 표고 결정 — 드래그보정 > DEM > 최근접 측점 정표고, geoidOffset(대전 25.8m) datum 정합
5. 좌표 변환 — 위경도 → EPSG:5186 TM(proj4) → 드론 기준 상대 ENU (`projectPoint` L334)
6. 회전 — Rz(−yaw)·Rx(pitch)·Ry(roll) → 카메라 좌표, Zc≤0/FOV/거리 필터 (`toCameraCoords` L301)
7. 핀홀 투영 — u=0.5+(Xc/Zc)(f/sW) (`pixelFromCamera` L126)
8. 화면 배치 — object-fit:cover 정렬(StationOverlay L948) + 속도적응 평활(smoothStep L49) + 60fps RAF
★ 역투영 드래그 보정 (`worldFromPixel` L149)

## 검증

- 실제 소스(geoData.ts / geoProjection.ts / StationOverlay.tsx)를 읽고 단계·라인 확인 후 작성 (라인은 2026-07-03 기준).
- md2docs.sh 변환 정상(HTML 31KB, PDF 140KB).

## 참고

- 초등학생 수준 눈높이(메모리 기본값) + 파일·라인 근거 병기 형식. 기존 쉬운설명 시리즈와 동일한 스타일.
