Files
GhiVideo_v4/docs/history/2026-07-13_1912_타원체고-기준-자동변환.md
T
b23042andClaude Fable 5 7d51ba9945 표고 체계 정비·설정 파일 단순화·선형 클리핑·시연 준비
- 타원체고 기준 자동 변환: route.json ellipsoidal_height 선언 시 드론 고도(CSV 정표고)를
  영상 메타(djmd 6.6 타원체고)와의 차(지오이드고 자동 산출)만큼 보정, 세그먼트 전환에도 유지
- KML 표고 파이프라인: 좌표 고도(z) 사용(POI/측점), *_byDem.kml 자동 생성(DEM 조회·높이 속성 포함)
  + 로더의 _byDem 우선 규칙, 선형중심선(LineString) 로딩·경로표고 앵커
- 설정 파일: camera.json/display.json/route.json 단순 이름 인식, 화면표시 옵션 PC 저장/자동 적용,
  초기화 버튼을 환경설정 파일 기준 복원으로 변경, 저장 파일명 단순화
- 선형 표시: 표출된 마지막 측점까지 클립(경계 세그먼트 절단 + 관통 현 처리 — 구간 실종 수정)
- 스테이션바: 시점(0k000) 마크(실통과 위치), 노선밖 프레임 통과 오인 방지, 커서 배지 1m 단위,
  배너 연장/소요 실측값(측점 체이니지·영상 길이 합) 우선
- 세그먼트 전환 라벨 깜빡임 구조 수정(캐시 초기화·최근접 키 조회·이중 재계산 제거) +
  사전계산 프레임 불변값 호이스팅(재생 지연 해소)
- UI: 슬라이더/값 입력칸 휠 조절, 패널 버튼 위치 정렬, 저장 버튼 중복 제거, dev_mode(route.json)로
  영상제어 UI 표시 제어, 지오이드 최대 200, 이격거리 측점 동반 적용
- 시연: start-demo.bat + docs/DEMO.md
- docs/history: 작업 이력 30건

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 20:37:46 +09:00

37 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-07-13 타원체고 기준 자동 변환 (datum 통일)
**소요 시간**: 12분
**Context 사용량**: input 2570k / output 6k tokens
## 요청
지물(측점/지장물) 데이터가 타원체고 기준일 때, 그 기준으로 맵핑을 맞출 수 있는지 → 구현.
## 원리
- 드론 **타원체고**가 영상 메타(djmd 필드 6.6, mm)에 프레임별 기록됨: 174.42m
- CSV 고도는 **정표고**: 148.36m → 차이 26.06m = **그 지점의 지오이드고** (자동 산출 가능)
- 타원체고 데이터셋이면 드론 고도에 이 값을 더해 지물 z(타원체고)와 기준 통일
→ 지오이드/offZ 수동 보정 불필요
## 구현
- **cameraMeta.ts**: djmd 6.6 → `DetectedCameraInfo.ellipsoidalAltM` 추출 (0~10km 범위 검증)
- **geoData.ts (loadFolderGeoData)**: route.json `routeInfo.ellipsoidal_height` 가 선언된 폴더 =
타원체고 기준 데이터셋 신호 → `altitudeOffsetM = djmd 타원체고 CSV 정표고` (|값|<60m 검증)
를 모든 드론 프레임 altitude 에 가산. FolderGeoData/geoStore 에 오프셋 보존
- **geoStore.loadSegment**: 세그먼트 전환 재파싱 프레임에도 동일 오프셋 적용
- 정표고(DEM) 데이터셋(ellipsoidal_height 없음)은 오프셋 0 — 기존 동작 무변화
## 검증
- 실파일: djmd 174.42 CSV 148.36 = 26.06m 자동 산출 ✓ (제주 지오이드고와 부합)
- 경로 1-3 route.json 에 ellipsoidal_height(100.823) 존재 확인 → 해당 폴더 자동 발동
- tsc+vite 빌드 통과, 새 번들(index-D4bVLsb9.js) 서빙
## 사용 안내
- 타원체고 기준 폴더: route.json 에 `ellipsoidal_height` 만 있으면 자동 변환 —
지오이드 0/offZ 0 으로 두고 지면고도 모드 사용 권장
- 콘솔 로그: `[geo] 타원체고 기준 데이터셋 — 드론 고도를 타원체고로 변환 (+26.06m …)`