기존 GhiVideo 저장소 HEAD의 트래킹 소스 362개 파일을 복제. (node_modules·storage·빌드 산출물·대용량 미디어는 .gitignore 규칙대로 제외) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
34 lines
1.9 KiB
Markdown
34 lines
1.9 KiB
Markdown
# 출입문(출입문번호)을 영상에 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
|