- 제주 DJI 시간기반 비행로그(CSV) 파싱 어댑터: 세그먼트 창 정렬, 가상 fps 환산 - 분할 영상(이름 오름차순) 연속재생 + 좌상단 영상목록 콤보(선택 재생), 세그먼트별 드론 로그 재정렬 - KML 다중 파일 병합 파싱: STA 체이니지 측점(71개) + 지장물 신포맷(타입/이름/텍스트박스_색상) - 시설물 라벨: 지정색 배경 박스 + 흰 글자, 팝업 중앙 정렬, 호버 구간 깜빡임 수정 - 카메라 자동감지(djmd: ZenmuseP1, focal 29.9mm) + <영상명>.camera.json PC 저장/폴더 자동 적용 - Yaw 자동추정(GPS 진행방위 기반) + 라벨 드래그 Yaw 역산 모드 - 스테이션바: GPS 이동거리 진행도(호버 시 정지), 노선밖 거리 표기, 원거리 구조물 마크 제외 - 서버: /api/camera 라우트, ecosystem 포트 54000·제주 데이터 경로 - docs/history: 작업 이력 21건 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
53 lines
3.0 KiB
Markdown
53 lines
3.0 KiB
Markdown
# 2026-07-09 오버레이 라벨 표고 앵커 + 측점 거리 제한
|
|
|
|
**소요 시간**: 10분
|
|
**Context 사용량**: input 340k / output 6k tokens
|
|
|
|
## 문제 (스크린샷 제보)
|
|
|
|
1. 빨간 측점 라벨(0k000~6k998)이 수평선 부근에 전부 겹쳐서 깨진 글자처럼 보임
|
|
2. POI 라벨이 실제 지물보다 높게 떠서, 카메라(드론)가 전진하면 라벨이 계속 뒤로 밀림(시차 불일치)
|
|
|
|
## 원인
|
|
|
|
1. **측점 라벨엔 거리 제한이 없음** — POI는 maxPoiRange(기본 1000m) 필터가 있지만 측점은 없어서
|
|
7km 앞 측점까지 전부 FOV 안 수평선 근처에 투영·중첩됨
|
|
2. **라벨 표고 근사가 틀림** — 직전 작업에서 측점 z를 "드론고도−24m ≈ 124m"로 근사했으나
|
|
실제 지면은 ≈60m(경로표고 기본값 58이 도로에 붙는 것으로 확인) → 라벨이 지면보다
|
|
약 60m 공중에 떠서 원근 시차가 안 맞아 전진 시 라벨이 뒤로 흐름.
|
|
드론고도 모드(pz=드론고도−이격24)도 동일하게 124m 평면이라 같은 증상
|
|
|
|
## 수정 내용
|
|
|
|
### client/src/utils/geoData.ts
|
|
- KML 측점의 z 근사(드론고도−24) 제거 → z=0(표고 미상 표식) 유지
|
|
|
|
### client/src/components/overlay/StationOverlay.tsx
|
|
- **표고 미상(z≤0) 라벨을 '경로 표고'(dronePathZ) 평면에 앵커**:
|
|
- 측점 라벨 sz: 유효 z 없으면 PATH_Z(경로표고) 사용
|
|
- POI gz 폴백 체인: 보정값 → 중심선 z(>0만) → POI z(>0만) → PATH_Z
|
|
- 경로표고 슬라이더 변경 시 라벨 캐시 재계산(500ms 디바운스, 기존 트리거에 dronePathZ 추가)
|
|
- → **궤적을 도로에 맞추는 슬라이더 하나로 측점/POI 라벨 높이가 함께 보정됨**
|
|
- **측점 라벨에도 maxPoiRange 거리 제한 적용** — 원거리 측점 수평선 뭉침 해소
|
|
- **poiDroneHeight 기본값 true→false(지면고도 기준)**:
|
|
- 실측 z 데이터셋(회덕)은 지물에 정확히 붙음(원래 이 모드가 정확)
|
|
- 표고 미상 데이터셋(제주)은 경로표고 앵커로 일괄 보정 가능
|
|
- 드론고도 모드는 UI 토글로 여전히 선택 가능
|
|
|
|
## 검증
|
|
|
|
- tsc+vite 빌드 통과, 54000 포트 새 번들(index-Nv1HLuS3.js) 서빙
|
|
- 기하 검증(계산): 지면 60m/드론 148m 기준, 124m 라벨은 300m 전방 지물 대비 화면상 약
|
|
12% 위쪽에 투영(수평선 방향) → 전진 시 벌어짐. PATH_Z(58) 앵커 시 지물과 동일 평면 → 시차 일치
|
|
|
|
## 사용법 (사용자 안내)
|
|
|
|
- 새로고침 후 폴더 재선택 → '경로 표고' 슬라이더로 파란 궤적을 도로 노면에 맞추면
|
|
측점·POI 라벨도 같은 평면으로 따라옴 (기본 58m가 대략 맞음)
|
|
- 측점 라벨 표시 거리는 'POI 표시범위'(maxPoiRange) 슬라이더로 조절
|
|
|
|
## 다음 단계 참고
|
|
|
|
- 지형 기복이 큰 구간은 단일 평면 앵커의 한계 있음 — 필요 시 구간별 z 또는 DEM 도입 검토
|
|
- RoutePanel 가시범위(초록 박스) 계산은 여전히 pt.z(0) 사용 — 부정확할 수 있으나 부차적
|