- 타원체고 기준 자동 변환: 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>
1.6 KiB
1.6 KiB
2026-07-13 라벨 사전계산 최적화 + 패널 버튼 위치 교환
소요 시간: 12분 Context 사용량: input 1230k / output 6k tokens
문제 1 — 재생 느려짐·딜레이·POI 라벨 깜빡임 (제보)
원인
오늘 추가한 측점 세그먼트 투영(projectCL)이 라벨 사전계산의 프레임 루프 안에서 실행 — 측점 71 × 선분 145 × 프레임 1947 ≈ 2천만 반복. POI 지면고도(gz: nearestCL 146정점 × POI 33)도 프레임마다 반복. 재생 중 requestIdleCallback 청크가 timeout(200ms)으로 강제 실행될 때마다 메인 스레드를 수십 ms 점유 → 영상 버벅임·딜레이·라벨 위치 갱신 밀림(깜빡임처럼 보임).
수정 — StationOverlay.tsx startLabelPrecompute
- 측점 투영(snappedSt)과 POI 지면고도(gzOf)는 프레임 불변 → 사전계산 시작 시 1회만 계산, 프레임 루프에서는 조회만. 프레임당 지오메트리 연산 ~15,000회 → 0회
문제 2 — 패널 토글 버튼 위치가 창과 반대 (요청)
- 패널은 flex-row-reverse 라 화면표시=오른쪽, 카메라=왼쪽인데 버튼은 반대 순서였음
- 버튼 순서를 [카메라 파라미터][화면표시 옵션] 으로 교환 — 버튼과 패널 위치 일치
문제 3 — 카메라 파라미터 저장 (요청)
- 이미 존재(내부표정 📷 줄 [PC에 저장])하나 찾기 어려움 → 카메라 패널 헤더(자세 보정 오프셋 행) 우측에도 [PC에 저장] 배치 — 화면표시 옵션 패널과 동일한 위치·스타일
검증
- tsc+vite 빌드 통과, 새 번들(index-CYjWswA1.js) 서빙