Files
GhiVideo_v4/docs/history/2026-07-09_1725_라벨-표고앵커-측점거리제한.md
b23042andClaude Fable 5 84f4921826 제주 드론 도로영상 지원: DJI 로그 어댑터·분할영상 연속재생·카메라 자동감지·오버레이 개선
- 제주 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>
2026-07-09 20:58:49 +09:00

3.0 KiB

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) 사용 — 부정확할 수 있으나 부차적