Files
dronevideoplayer/docs/history/2026-04-28_미니맵-미표시-원인분석.md
2026-06-17 09:34:20 +09:00

43 lines
1.6 KiB
Markdown

# 2026-04-28 미니맵 미표시 원인 분석 및 수정
## 작업 내용
새로운 서버에 배포 후 RoutePanel 미니맵이 표시되지 않는 원인 분석 및 수정
## 원인
1. **`GEO_DATA_DIR` 미설정**: 기본값이 `samplevideo/` 상대 경로인데 새 서버에 해당 폴더 없음
2. **`loadFrames()` crash**: `_dataDir`이 존재하지 않아도 `fs.readdirSync()` 호출 → 예외 발생 → `/api/geo/frames` 500 반환
3. **RoutePanel 렌더 가드**: `stations.length === 0` 이면 `null` 반환 → 미니맵 완전히 숨김
4. **에러 무시**: fetch `.catch(() => {})` 로 서버 500 에러가 조용히 무시됨
## 수정 사항
- `server/src/services/geoMatch.ts`: `loadFrames()``fs.existsSync(_dataDir)` 체크 추가 (crash → 빈 배열 반환)
- `loadFrames()`, `loadPois()` 양쪽에 `[geo]` 경고 로그 추가 (어떤 파일이 없는지 즉시 파악 가능)
- 불필요한 미사용 변수(`csvPath`) 제거
## 새 서버 설정 방법
```powershell
$env:GEO_DATA_DIR="C:\경로\samplevideo"
$env:VIDEOS_DIR="C:\경로\videos"
npm run dev:server
```
필요한 디렉토리 구조:
```
{GEO_DATA_DIR}/
├── 하행)회덕-대전조차장.csv ← 드론 비행 데이터
└── building/
├── *POI*위경도*.csv
└── *측점*위경도*.csv
```
## GeoSearch 기능 확인
- "건물 → 프레임" 탭: 측점/건물명 검색 → 카메라 시야 내 프레임 목록 → 클릭 시 이동
- "프레임 → 건물" 탭: 현재 프레임에서 보이는 POI/측점 목록 표시
- RoutePanel: 세로 드래그로 km 위치 seek
**소요 시간**: 20분
**Context 사용량**: input 45k / output 8k tokens