# 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