Files
GhiVideo_v4/docs/history/2026-06-24_1453_POI팝업-원본CSV속성표시.md
T
b23042andClaude Fable 5 d38b842e8d GhiVideo 소스 복제 — v4 작업 시작 기준
기존 GhiVideo 저장소 HEAD의 트래킹 소스 362개 파일을 복제.
(node_modules·storage·빌드 산출물·대용량 미디어는 .gitignore 규칙대로 제외)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 14:32:51 +09:00

39 lines
2.0 KiB
Markdown

# POI 클릭 팝업에 원본 CSV 속성 표시 (KMZ 정보표 형태)
**날짜**: 2026-06-24
**수정 파일**: `client/src/types/geo.ts`, `client/src/utils/geoData.ts`,
`client/src/components/overlay/StationOverlay.tsx`
## 요구
KMZ 팝업처럼 POI(출입문 등)의 본부·선별·역구간·시설팀·측점 등 **원본 속성**을 라벨 클릭 팝업에 표시.
## 구현
### 데이터: 원본 CSV 컬럼을 props 로 보존
- `GeoPoint`/`RouteStructure``props?: { k: string; v: string }[]` 추가(순서 보존).
- 헬퍼 `cleanHeader()`(트림+BOM)·`rowProps(header,row)`(비어있지 않은 헤더:값 배열) 추가.
- 적용 파서(전부 비어있지 않은 모든 컬럼 저장):
· `parseAccessDoors`(출입문) · `parsePois`(_POI.csv + 02)지장물) · `parseStructures`(03)교량/04)터널/06)구교).
- `StationOverlay` 구조물→GeoPoint 매핑에 `props: s.props` 전달.
### 팝업 렌더 (StationOverlay)
- `InfoPopup``props?` 추가, 클릭 시 `obj.props` 캡처.
- 팝업 본문을 `grid grid-cols-[auto_1fr]`(키/값) 로:
· props 있으면 **모든 속성**(예 본부·선별·역구간·latitude·longitude·시설팀·출입문번호·5186x/y·X/Y/Z좌표·z·측점) + 드론거리.
· props 없으면 기존 기본(종류/위도/경도/표고/거리).
- `max-h-[45vh] overflow-y-auto`(속성 많을 때 스크롤).
## 효과
- 출입문 6-007 클릭 → KMZ와 동일 항목(본부 대전충남 / 선별 경부선 / 역구간 회덕-대전조 / 시설팀
대전시설팀 / 출입문번호 6-007 / 측점 (158K600) / z 67.391 …)이 팝업에 표시.
- 지장물·_POI·교량/터널/구교도 각 CSV 속성 표시.
## 참고 (미구현)
- KMZ의 "지면 고도 46.12m"(구글 DEM 실측)는 CSV에 없음 → 로컬 공개 DEM(`36710.img`, rasterio)으로
좌표별 지면고도를 채워 팝업/표고에 쓰는 건 별도 작업으로 가능.
## 검증
- `npm run build -w client` (node20) tsc + vite build 통과.
**소요 시간**: 약 12분
**Context 사용량**: input ~660k / output ~7k tokens