- 제주 DJI 시간기반 비행로그(CSV) 파싱 어댑터: 세그먼트 창 정렬, 가상 fps 환산 - 분할 영상(이름 오름차순) 연속재생 + 좌상단 영상목록 콤보(선택 재생), 세그먼트별 드론 로그 재정렬 - KML 다중 파일 병합 파싱: STA 체이니지 측점(71개) + 지장물 신포맷(타입/이름/텍스트박스_색상) - 시설물 라벨: 지정색 배경 박스 + 흰 글자, 팝업 중앙 정렬, 호버 구간 깜빡임 수정 - 카메라 자동감지(djmd: ZenmuseP1, focal 29.9mm) + <영상명>.camera.json PC 저장/폴더 자동 적용 - Yaw 자동추정(GPS 진행방위 기반) + 라벨 드래그 Yaw 역산 모드 - 스테이션바: GPS 이동거리 진행도(호버 시 정지), 노선밖 거리 표기, 원거리 구조물 마크 제외 - 서버: /api/camera 라우트, ecosystem 포트 54000·제주 데이터 경로 - docs/history: 작업 이력 21건 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
54 lines
3.0 KiB
Markdown
54 lines
3.0 KiB
Markdown
# 2026-07-09 KML 시설물/측점 정보 임포트 (ExtendedData 지원)
|
|
|
|
**소요 시간**: 12분
|
|
**Context 사용량**: input 265k / output 6k tokens
|
|
|
|
## 작업 내용
|
|
|
|
KML 파일에서 시설물 정보를 가져올 수 있도록 parseKmz 확장. 제주 KML의 STA(체이니지 측점)
|
|
71개가 측점으로 로드되어 측점 파이프라인 전체(스테이션바·노선패널·검색·오버레이) 활성화.
|
|
|
|
## 배경 — 제주 KML 구조
|
|
|
|
```
|
|
Folder 선형중심선: LineString (도로 중심선, CAD 내보내기)
|
|
Folder STA: Point 71개 (0+000 ~ 6+998, 100m 간격)
|
|
└ ExtendedData/SchemaData/SimpleData: STA(이름), lat, lon, 5186_x/y, km(float)
|
|
```
|
|
|
|
기존 parseKmz 는 description CDATA HTML 표(회덕 지오코딩 산출물)만 속성으로 읽었고,
|
|
체이니지 Point 는 직전 작업에서 POI 오염 방지를 위해 스킵 처리했었음.
|
|
|
|
## 수정 내용 — client/src/utils/geoData.ts
|
|
|
|
1. **SimpleData 속성 수집**: `ExtendedData/SchemaData/SimpleData` 를 description HTML 표와
|
|
동일하게 props 로 통합 — CAD·GIS 내보내기 KML의 속성이 기존 폴더 분기(교량/터널/구교/출입문)에서도
|
|
그대로 동작 (향후 시설물 폴더가 있는 KML 대응)
|
|
2. **체이니지 측점 → station**: 이름 `N+NNN` 형식 또는 STA 속성 보유 Point 를
|
|
`type='station'` 으로 수집. km 속성(단위 km) 우선, 없으면 이름 파싱.
|
|
제목을 철도식 `NkNNN`("0k100")으로 변환 → stationOrder/stationKm 파이프라인 그대로 호환
|
|
3. **parseKmz 반환에 `stations` 추가**, 로드 로그에 측점 수 표기
|
|
4. **loadFolderGeoData**: CSV 측점(01)측점 — 실측 표고) 우선, 없으면 KML 측점 사용.
|
|
KML 측점은 표고 미상(z=0) → **최근접 드론 프레임 고도 − 24m 근사**
|
|
(도로 추종 저고도 비행 가정, 오버레이 기본 모드가 드론고도 기준이라 오차 영향 작음)
|
|
|
|
## 활성화되는 기능 (제주 데이터)
|
|
|
|
- 하단 스테이션바: 측점 체이니지 기반 이동거리축(ready=true), 최근접 측점 배지, 바 클릭 seek
|
|
- 좌측 노선 패널(RoutePanel): 측점 71개 (0k000~6k998), 시점/종점명은 route.json(A/B)
|
|
- 영상 오버레이: 측점 라벨 투영 (드론고도 − 이격 모드 기본)
|
|
- GeoSearch: 측점명 검색/자동완성
|
|
|
|
## 검증
|
|
|
|
- tsc + vite 빌드 통과, 54000 포트 새 번들(index-BvbrGp3O.js) 서빙
|
|
- KML STA 데이터 레벨 검증: 71개 전부 변환, 제목 0k000~6k998, stationKm 파싱 유효, 단조증가
|
|
|
|
## 다음 단계 참고
|
|
|
|
- KML 노선은 0~7km인데 경로 1-1 비행은 그중 약 1.9km 구간만 커버 — RoutePanel 마커가
|
|
일부 구간에서만 움직이는 것이 정상
|
|
- 교량/터널 등 실제 시설물 Placemark 가 있는 KML 이 오면 기존 폴더명 분기(교량/터널/구교/출입문)로
|
|
자동 임포트됨 — SimpleData 속성(연장(m), 구분 등)도 이제 인식
|
|
- 선형중심선 LineString 은 미사용 (측점 폴리라인으로 중심선 생성 — 기존 로직)
|