Files
GhiVideo/docs/history/2026-06-24_1441_출입문-영상표출.md
b23042andClaude Opus 4.8 78fc090360 초기 커밋: 스테이션(측점) 기반 주행영상 플레이어
- 클라이언트(React/Vite): Video.js 플레이어, 하단 스테이션바, POI/구조물 영상 오버레이, 카메라 파라미터 보정, 미니맵/RoutePanel
- 서버(Express): Range 스트리밍, HLS 변환, 프레임 추출, tus 업로드, 주석 API
- 최근 작업: 스테이션바 종점역 표출/양끝 정렬/미도착(재생불가) 표시, POI 라벨 '구분' 우선·컴팩트 팝업·겹침제외 토글·동일좌표 다중행, 진행방향(상/하) 우선 표출, 커서 배지 크기·픽셀 떨림 개선

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-25 16:37:57 +09:00

1.9 KiB

출입문(출입문번호)을 영상에 POI처럼 표출

날짜: 2026-06-24 수정 파일: client/src/utils/geoData.ts, client/src/components/overlay/StationOverlay.tsx

배경

QGIS(qgs)·gpkg 의 출입문(출입문번호) 레이어를 영상에 표시하고 싶다는 요청. 데이터는 building/05)출입문번호.csv 에 존재(기존엔 기본 표시 제외). D:\ 데이터 직접 확인: 컬럼 본부,선별,역구간,latitude,longitude,시설팀,출입문번호,...,z,측점.

구현

  • parseAccessDoors(files) 추가(geoData.ts): building/05)출입문번호.csv(UTF-8 BOM) → GeoPoint{ title=출입문번호, category='출입문', lat/lon, z, type='poi' }. 헤더명 우선(폴백 인덱스 latitude=3/longitude=4/출입문번호=6/z=12), 위경도 범위검증, 번호 빈 행 스킵.
  • loadFolderGeoData: Promise.all 에 parseAccessDoors 추가, pois 에 concat → 영상 오버레이가 POI 와 동일 파이프라인(거리필터·연속포즈 투영·클릭 팝업·지면고도)으로 표출.
  • StationOverlay: CATEGORY_EMOJI['출입문']='🚪'.

결과

  • 이 영상 구간(회덕-대전조차장) CSV엔 번호 보유 출입문 4건(5-122,6-007,6-009,6-010) → 🚪 라벨 표출. (번호 없는 행은 라벨 대상 아님 → 스킵.)
  • 표고는 기본(지면고도) 모드에서 최근접 측점표고 사용(CSV z=67.391 상수는 미사용).
  • POI 거리 범위(기본 300m)·겹침억제·클릭 속성팝업 모두 동일 적용.

데이터 접근 참고 (WSL /mnt/d)

  • gpkg …_layers.gpkg(출입문 526행 전체)·DEM (B080)공개DEM/36710.img(KGD2002/Unified, 90m, 구간 포함)·xlsx 모두 판독 가능(sqlite3/rasterio/python3). 필요 시 로컬 DEM 으로 지면고도 대체 가능.

검증

  • npm run build -w client (node20) tsc + vite build 통과.

소요 시간: 약 15분 Context 사용량: input ~620k / output ~7k tokens