- 타원체고 기준 자동 변환: 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>
43 lines
2.0 KiB
Markdown
43 lines
2.0 KiB
Markdown
# 2026-07-13 표고 없는 KML → _byDem.kml 자동 생성 기능
|
|
|
|
**소요 시간**: 12분
|
|
**Context 사용량**: input 2000k / output 6k tokens
|
|
|
|
## 요청
|
|
|
|
폴더 로드 시 측점/지장물 KML 의 좌표 z(높이)가 없거나 0 이면, DEM 연동으로 채운
|
|
`지장물_byDem.kml` / `측점_byDem.kml` 을 생성·저장하는 기능. (원본 비파괴)
|
|
|
|
## 데이터 정리 (선행)
|
|
|
|
직전 턴에서 원본에 직접 기록했던 것을 새 규칙에 맞게 재정리(4개 폴더):
|
|
- 현재(DEM 기록) 파일 → `<이름>_byDem.kml` 로 이동, `.bak` → 원본 복원
|
|
- 결과: 원본(z=0) + _byDem(z=DEM) 공존
|
|
|
|
## 구현
|
|
|
|
### client/src/utils/demKml.ts (신규)
|
|
- `generateByDemKmls(files)`: 폴더의 각 KML 에서 고도 없는(≤0) 좌표만 수집 →
|
|
서버 `/api/elevation`(SRTM 30m 프록시) 100좌표/청크·1.2s 간격 조회 →
|
|
고도 성분만 치환한 `<이름>_byDem.kml` 을 Blob 다운로드. 기존 표고(>0)는 보존
|
|
- 건너뜀: 자신이 _byDem / 폴더에 _byDem 존재 / 전 좌표 표고 보유
|
|
|
|
### client/src/utils/geoData.ts — parseKmz
|
|
- `<이름>_byDem.kml` 존재 시 원본 `<이름>.kml` 파싱 제외 (중복 지물 방지, 표고 버전 우선)
|
|
|
|
### client/src/components/player/VideoPlayer.tsx
|
|
- 폴더 선택 시 generateByDemKmls 자동 실행 — 생성되면 alert 로 안내
|
|
("다운로드 파일을 영상 폴더에 넣으면 다음 로드부터 자동 사용"). 오프라인 실패는 콘솔 경고만
|
|
|
|
## 검증
|
|
|
|
- 파일 선택 규칙 시뮬레이션: [지장물, 지장물_byDem, 측점, 측점_byDem, 기타] →
|
|
파싱 대상 [지장물_byDem, 측점_byDem, 기타] ✓
|
|
- 서버 DEM 프록시 응답 확인: {"elevation":[70],"source":"opentopodata-srtm30m"} ✓
|
|
- tsc+vite 빌드 통과, 새 번들(index-BY1J77b5.js) 서빙
|
|
|
|
## 다음 단계 참고
|
|
|
|
- 브라우저 다중 다운로드 허용 팝업이 뜰 수 있음(측점+지장물 2파일) — 허용 1회
|
|
- DEM 조회는 인터넷 필요(서버가 외부 API 프록시) — 오프라인 시연 중엔 생성 건너뜀(무해)
|