- 클라이언트(React/Vite): Video.js 플레이어, 하단 스테이션바, POI/구조물 영상 오버레이, 카메라 파라미터 보정, 미니맵/RoutePanel - 서버(Express): Range 스트리밍, HLS 변환, 프레임 추출, tus 업로드, 주석 API - 최근 작업: 스테이션바 종점역 표출/양끝 정렬/미도착(재생불가) 표시, POI 라벨 '구분' 우선·컴팩트 팝업·겹침제외 토글·동일좌표 다중행, 진행방향(상/하) 우선 표출, 커서 배지 크기·픽셀 떨림 개선 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
36 lines
2.1 KiB
Markdown
36 lines
2.1 KiB
Markdown
# POI 높이를 지면고도 기준으로 — 고정 이격거리 → 기본 OFF (드론 고도 변동 대응)
|
||
|
||
**날짜**: 2026-06-24
|
||
**수정 파일**: `client/src/components/overlay/StationOverlay.tsx`
|
||
|
||
## 요구
|
||
드론 고도가 오르내리는데, POI 이격거리를 고정값(24m)으로 두지 말고
|
||
**드론고도 − 지면고도**로 POI 높이를 표시하고 싶다.
|
||
|
||
## 해석
|
||
투영 수직간격 `gap = 드론고도(alt) − (POI 지면고도 z + 지오이드)`.
|
||
- 고정 이격거리(ON): `gap=24m` 상수 → POI가 드론에 매달려 고도 변동 시 같이 떠/내려감(지물 이탈).
|
||
- **지면고도 기준(OFF)**: POI를 지면고도 z 에 고정 → `gap`이 매 프레임 `드론고도−지면고도`로
|
||
자동 계산 → 드론이 오르내려도 POI가 고정 지상점에 그대로 붙음. (= 사용자가 원한 동작)
|
||
|
||
즉 별도 신규 모드 불필요 — 기존 `poiDroneHeight=false`(지면고도 모드)가 정확히 이 계산.
|
||
|
||
## 조치
|
||
- `DISPLAY_DEFAULTS.poiDroneHeight` **true → false** (지면고도 기준을 기본값으로).
|
||
드론 고도 변동 환경에서 고정 이격거리는 부정확하므로 기본 off.
|
||
- `poiDroneHeightRef` 초기값도 동일 상수 참조 → 자동 반영. 토글은 유지(원하면 고정모드로 복귀).
|
||
- 지면고도 z 출처(false 모드): POI override(DEM/드래그) → 없으면 `nearestCL.z`(최근접 측점 표고).
|
||
· 선로변 POI·교량(신대천교 등)은 측점 표고가 곧 지면/교량고도라 양호.
|
||
· 선로에서 먼 POI는 **🌐 DEM 표고 자동적용**으로 실제 지면고도 채우는 걸 권장.
|
||
|
||
## 사용
|
||
- 기본값이 지면고도 기준으로 시작. 멀리·가까이 모두 고정 지상점에 붙어 자연스럽게 추종.
|
||
- 정밀이 필요하면 편집 모드 → 🌐 DEM 표고 자동적용(또는 표고 슬라이더/드래그).
|
||
- 고정 이격거리로 되돌리려면 "드론 높이와 POI 이격거리" 토글 ON.
|
||
|
||
## 검증
|
||
- `npm run build -w client` (node20) tsc + vite build 통과.
|
||
|
||
**소요 시간**: 약 7분
|
||
**Context 사용량**: input ~385k / output ~4k tokens
|