# 2026-07-13 KML 선형중심선(LineString) 로딩 **소요 시간**: 8분 **Context 사용량**: input 950k / output 4k tokens ## 요청 제주_중산간도로.kml 로딩 — 측점(STA 71)·지장물은 이미 로딩 중이므로, 유일하게 미사용이던 **선형중심선(LineString)** 을 로딩해 사용. ## 수정 내용 ### client/src/utils/geoData.ts - `parseKmz`: Placemark 의 LineString 지오메트리를 중심선 폴리라인으로 수집 (연속 중복 정점 제거, 한국 범위 좌표만, 여러 개면 가장 긴 것). 반환에 `centerline` 추가 - `loadFolderGeoData`: 중심선 소스 우선순위 — **KML 선형중심선(146정점, 실제 도로 곡선)** → 없으면 기존 측점 폴리라인(100m 간격 직선 연결) ### client/src/components/overlay/StationOverlay.tsx - 선형(중심선) 오버레이 투영 시 **표고 미상(z≤0) 정점을 '경로 표고' 평면에 앵커** — 기존엔 z=0(해수면) 그대로 투영되어 실제 도로와 크게 어긋났음(측점/POI 라벨과 동일 기준으로 통일) ## 효과 - 선형 ON 시 곡선 구간에서 각지지 않는 실제 도로 선형 표시(146정점 vs 측점 71개 직선 연결) - 측점 라벨 스냅(nearestCL)도 더 정밀한 선형 기준으로 동작 - 콘솔: `[KMZ] POI 33 · 구조물 3 · 측점 71 · 중심선 146점 로드(원본)` + `[geo] 중심선: KML 선형중심선 146점 사용` ## 검증 - tsc+vite 빌드 통과, 새 번들(index-Cc-unyK5.js) 서빙 - 참고: 폴더에 사용자가 저장한 DJI_20260629121835_0002.camera.json 확인됨 — 폴더 선택 시 자동 적용됨 ## 다음 단계 참고 - 스테이션바의 체이니지 투영(stationLine)은 여전히 측점 기반(km 값 필요) — 변경 없음