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

1.6 KiB

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) 제거

새 서버 설정 방법

$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