커밋 그래프

225 커밋

작성자 SHA1 메시지 날짜
abab9a581f docs: 릴리즈 노트 정리 (2026-03-19)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 13:21:30 +09:00
94b162aa2a Merge pull request 'feat: 거리·면적 측정 + SCAT 관할서 필터링 + 해안조사 파이프라인' (#100) from feature/draw-util into develop 2026-03-19 13:19:00 +09:00
7fff1dae19 docs: 릴리즈 노트 업데이트
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 13:16:04 +09:00
ef2ef8a542 refactor(scat): SCAT 사진을 로컬에서 서버 프록시로 전환
- scat-photos 로컬 이미지 1,127개 삭제
- ScatPopup 이미지 경로 원복 (segCode 기반)
- vite proxy 대상을 wing-demo.gc-si.dev로 변경

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 11:31:33 +09:00
d9fb4506bc feat(scat): Pre-SCAT 관할서 필터링 + 해안조사 데이터 파이프라인 구축
- 백엔드: 관할서 목록 API, zone 필터링 쿼리 추가
- 프론트: ScatLeftPanel 관할서 드롭다운, ScatMap/ScatPopup 개선
- 기상탭: WeatherRightPanel 리팩토링
- prediction/scat: PDF 파싱 → 지오코딩 → ESI 매핑 파이프라인
- vite.config: proxy 설정 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 10:53:19 +09:00
44a7d0030a Merge pull request 'docs: ������ ��Ʈ ���� (2026-03-18)' (#98) from release/2026-03-18-notes into develop 2026-03-18 18:17:16 +09:00
fbc2173027 docs: 릴리즈 노트 정리 (2026-03-18) 2026-03-18 18:16:20 +09:00
63cf614365 Merge pull request 'feat: ���� ����, ������ �г� �߰�, ������ ���� ����' (#97) from feature/prediction into develop 2026-03-18 18:13:11 +09:00
86e534b6dc docs: 릴리즈 노트 업데이트 2026-03-18 18:11:55 +09:00
621d8e3516 feat: 예측 개선, 관리자 패널 추가, 보고서 기능 개선 2026-03-18 18:10:41 +09:00
c7c7537dbb feat(prediction): trajectory API에 모델별 windData/hydrData 분리 반환 2026-03-18 13:25:21 +09:00
33155e0f87 Merge pull request 'docs: 릴리즈 노트 정리 (2026-03-17)' (#95) from release/2026-03-17-notes into develop 2026-03-17 18:40:56 +09:00
e096010ea9 docs: 릴리즈 노트 정리 (2026-03-17) 2026-03-17 18:39:44 +09:00
20890fe8a9 Merge pull request 'feat(prediction): 다중 모델 시뮬레이션 지원 (OpenDrift + POSEIDON)' (#94) from release/2026-03-16-notes into develop 2026-03-17 18:38:01 +09:00
e8b5a4e093 docs: 릴리즈 노트 업데이트 2026-03-17 18:36:23 +09:00
734ebeeaab feat(prediction): 다중 모델 시뮬레이션 지원 (OpenDrift + POSEIDON) 2026-03-17 18:33:17 +09:00
595fac5adb Merge commit '130f563ab2e95122296d3b7d8805985c4d39fb4f' into feature/draw-util 2026-03-16 18:36:12 +09:00
34ed6b6291 Merge pull request 'docs: ������ ��Ʈ ���� (2026-03-16)' (#92) from release/2026-03-16-notes into develop 2026-03-16 18:34:48 +09:00
b24a6f4c54 docs: 릴리즈 노트 정리 (2026-03-16) 2026-03-16 18:34:10 +09:00
130f563ab2 Merge pull request 'feat: 보고서 지도캡처 + 드론/CCTV/확산예측 UI 기능 개선' (#91) from feature/function_develop into develop 2026-03-16 18:30:02 +09:00
075c6cd9bc docs: 릴리즈 노트 업데이트 2026-03-16 18:27:23 +09:00
c4f11423aa feat(reports): 보고서 확산예측 지도 캡처 기능 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 18:23:42 +09:00
301df70376 feat(map): 거리·면적 측정 도구 구현
TopBar 퀵메뉴에서 거리/면적 측정 모드 토글, MapView에서 클릭으로
포인트 수집 후 deck.gl 레이어로 결과를 시각화한다.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 17:52:27 +09:00
da077bf884 fix(prediction): geo.ts 중복 함수 제거 및 null 좌표 참조 오류 수정 2026-03-16 11:51:48 +09:00
a3b2787ba0 chore: feature/cctv-hns-enhancements 머지 충돌 해결
- aerialRouter/Service: stitch(이미지합성) + drone stream 기능 통합
- aerialService: IMAGE_API_URL(stitch) / OIL_INFERENCE_URL(inference) 분리
- aerialApi: stitchImages + DroneStream API 함수 공존
- MapView: analysis props(HEAD) + lightMode prop(INCOMING) 통합
- CctvView: 지도/리스트/그리드 3-way 뷰 채택 (INCOMING 확장)
- OilSpillView: analysis 상태 + 데모 자동 표시 useEffect 통합
- PredictionInputSection: POSEIDON/KOSPS 모델 추가 (ready 필드 포함)
- RightPanel: controlled props 방식 유지, 미사용 내부 상태 제거

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 10:58:00 +09:00
Nan Kyung Lee
fbef59341e feat(aerial): 드론 아이콘 쿼드콥터 + 함정 MarineTraffic 삼각형 스타일
- 함정: MarineTraffic 스타일 삼각형 (선수 방향 위, 상태색 채움)
- 드론: 쿼드콥터 아이콘 (X자 팔 + 프로펠러 회전 애니메이션 + 카메라 렌즈)
- 함정↔드론 점선 연결선 유지
- 송출중 REC LED 깜빡임, 드론 모델명 라벨

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 09:53:30 +09:00
Nan Kyung Lee
615f7f9277 feat(aerial): 드론 지도 아이콘 개선 — 함정 삼각형 + 연결선 + 드론 원형
- 함정: 삼각형 아이콘 + 함정명 라벨 (좌하단)
- 드론: 원형 아이콘 (십자 프로펠러 + 본체 + 카메라 렌즈) (우상단)
- 함정↔드론 점선 연결선으로 소속 관계 표시
- 상태별 색상: 송출중(초록), 연결중(시안), 오류(빨강), 대기(회색)
- 송출중 드론 빨간 LED 깜빡임 유지
- 드론 모델명 라벨 (M300/M30T/Mavic3E)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 09:51:30 +09:00
Nan Kyung Lee
c4728be7a1 feat(aerial): 실시간 드론 지도 뷰 — 드론 위치 아이콘 + 클릭 스트림 연결
- 드론 미선택 시 MapLibre 지도에 드론 위치 표시 (부산/인천/목포)
- 드론 SVG 아이콘 (본체+팔4개+프로펠러+카메라, 상태별 색상)
- 송출중 드론은 빨간 LED 깜빡임 애니메이션
- 드론 클릭 → 다크 팝업 (함정명, 드론모델, IP, 상태)
  대기중: "스트림 시작" 버튼 / 송출중: "영상 보기" 버튼
- 스트림 선택 시 자동으로 영상 그리드로 전환

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 09:28:08 +09:00
Nan Kyung Lee
9386c1e29a style(prediction): 확산 예측 요약 폰트/레이아웃을 오염 종합 상황과 통일
- PredictionCard를 StatBox와 동일한 가로 레이아웃(라벨-값)으로 변경
- 폰트 사이즈 text-xs → text-[9px]로 축소하여 오염 종합 상황과 일치

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 09:22:01 +09:00
Nan Kyung Lee
939bd0fc88 feat(prediction): KOSPS/앙상블 준비중 팝업 + 기본 모델 POSEIDON 변경
- KOSPS 모델 클릭 시 "준비중" alert 팝업
- 앙상블 모델 클릭 시 "준비중" alert 팝업
- 기본 선택 모델을 KOSPS → POSEIDON으로 변경

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 08:59:18 +09:00
Nan Kyung Lee
48b5e876ac feat(prediction): 범례 UI 개선 — HTML 참고 디자인 반영
- 모델별 색상 라인 (KOSPS/POSEIDON/OpenDrift/앙상블)
- 오일펜스 라인 아이콘 (점 3개)
- 도달시간별 선종 표시: 위험(<6h), 경고(6~12h), 주의(12~24h), 안전
- 범례 사이즈 축소 (폰트 10px, 패딩 축소)
- 접기/펼치기 토글 (▶/▼)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 08:58:06 +09:00
Nan Kyung Lee
97e9d58cc1 feat(prediction): 오염분석 UI 개선 — HTML 디자인 참고 반영
- 다각형/원 분석 탭 버튼 사이즈 축소 + 활성 탭 스타일 통일
- 다각형 분석: 설명 텍스트 + 그라데이션 "다각형 분석수행" 버튼
- 원 분석: 반경(NM) 프리셋 버튼(1,3,5,10,15,20,30,50) + 직접 입력
  사고지점 기준 원형 영역 면적 계산 (NM² + km²)
- 분석 결과: NM²/km² 면적, 원 둘레, 반경 표시

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 08:55:23 +09:00
Nan Kyung Lee
6944a9e342 feat(prediction): 원 분석 기능 — 중심점/반경 입력으로 원형 오염 면적 계산
- 원 분석 버튼 클릭 시 입력 폼 토글 (중심 위도, 경도, 반경 km)
- 사고 지점 좌표를 기본값으로 자동 설정
- πr² 면적, 2πr 둘레 계산 결과 표시
- 결과: 오염 면적(km²), 원 둘레(km), 반경(km), 중심 좌표

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 08:34:29 +09:00
Nan Kyung Lee
fb74df5c1f feat(prediction): 다각형/원 오염분석 + 범례 최소화 + Convex Hull 면적 계산
- 오염분석 버튼을 다각형 분석 / 원 분석으로 분리
- 다각형 분석: Convex Hull(Graham Scan) + Shoelace 알고리즘으로
  확산 입자 외곽 다각형 면적(km²), 둘레(km), 꼭짓점 수 계산
- 원 분석: 향후 오픈 예정 팝업
- geo.ts에 convexHull, polygonAreaKm2, analyzeSpillPolygon 함수 추가
- OilSpillView → RightPanel에 oilTrajectory prop 전달
- 지도 범례에 최소화/펼치기 토글 버튼 추가
- CheckboxLabel 중복 className 경고 수정

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 08:23:22 +09:00
Nan Kyung Lee
b25eccee37 feat(prediction): 오일펜스 배치 가이드 UI 개선
- AI 자동 추천: 클릭 시 "향후 오픈 예정" 팝업 표시
- 수동 배치 탭 제거
- 시뮬레이션: V자형 오일붐 자동 배치 + 차단 시뮬레이션 통합 실행
  알고리즘 설정(해류 직교 보정, 안전 마진, 최소 차단 효율, 파고 보정) 시뮬레이션 탭 내 통합
- 초기화: 확인 팝업 추가 (오일펜스만 초기화, 확산예측 결과 유지)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 08:15:23 +09:00
Nan Kyung Lee
bb3bd8358b feat(aerial): CCTV 지도/리스트 뷰 전환 + CCTV 아이콘 + 다크 팝업 UI
- 지도/리스트 뷰 토글 버튼 추가 (🗺 지도 / ☰ 리스트)
- 리스트 뷰: 출처별(KHOA/KBS) · 지역별 그룹핑 테이블 그리드
  카메라명, 위치, 상태, 최종갱신 컬럼 표시
- 지도 마커: 📹 이모지 → CCTV 카메라 SVG 아이콘 (LIVE 표시등 애니메이션)
- 좌측 목록: CCTV SVG 아이콘으로 교체
- 지도 팝업 다크 테마 적용 (배경, 테두리, 삼각형, 버튼 모두 어두운 톤)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 08:06:05 +09:00
Nan Kyung Lee
9c834c4e5e feat(prediction): 확산예측 지도 밝은 해도 스타일 적용 (육지 회색 + 바다 파랑)
고객요청사항 - 지도를 밝게 하거나, 선명하게 해서 확실히 구분해주세요.

- MapView에 lightMode prop 추가 및 해도 스타일(LIGHT_STYLE) 구현
- OpenFreeMap 벡터타일 기반: 육지(회색 #e8e8e8) + 바다(파랑 #a8cce0) 명확 구분
- 한글 지명 라벨 우선 표시 (name:ko → name 폴백)
- 도로/건물/경계선 회색 톤 통일, 해양 지명 이탤릭 표시
- 확산예측(OilSpillView)에 lightMode 적용

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 07:57:23 +09:00
Nan Kyung Lee
a470df5518 feat(aerial): KBS CCTV HLS 직접 재생 + CCTV 위치 지도 + 좌표 정확도 개선
- KBS 재난안전포탈 CCTV를 iframe에서 HLS 직접 재생으로 전환
- 백엔드 KBS HLS 리졸버 엔드포인트 추가 (/api/aerial/cctv/kbs-hls/:cctvId/stream.m3u8)
- KBS API 3단계 리졸브: 팝업API → loomex API → m3u8 (5분 캐시)
- CCTV 미선택 시 MapLibre 지도에 마커 표시 + 팝업 영상 선택
- 우측 미니맵을 실제 MapLibre 지도로 교체
- KBS API 정확 좌표로 19개 CCTV 업데이트 + 신규 2건 추가 (울산 달동, 제주 도남동)
- PredictionInputSection 중복 className 수정

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 07:40:52 +09:00
891db2a894 Merge pull request 'docs: ������ ��Ʈ ���� (2026-03-13)' (#89) from release/2026-03-13-notes into develop 2026-03-13 14:57:12 +09:00
4e0bb23dab docs: 릴리즈 노트 정리 (2026-03-13)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 14:56:05 +09:00
1bfc06c6c5 Merge pull request 'feat(prediction): 오염분석 다각형/원 분석 기능 구현' (#87) from feature/prediction-pollution-analysis into develop 2026-03-13 14:48:46 +09:00
740b8acf1d chore: develop 머지 + RELEASE-NOTES 충돌 해결 2026-03-13 14:46:50 +09:00
d693c6865f chore: 팀 워크플로우 동기화 (v1.6.1) 2026-03-13 14:30:43 +09:00
a40daf2263 docs: 릴리즈 노트 업데이트 2026-03-13 14:14:57 +09:00
6864f6dab5 fix(useSubMenu): useEffect import 추가 2026-03-13 14:10:15 +09:00
421f5f8b52 Merge branch 'feature/prediction-pollution-analysis' of https://gitea.gc-si.dev/gc/wing-ops into feature/prediction-pollution-analysis
# Conflicts:
#	docs/RELEASE-NOTES.md
#	frontend/src/common/components/map/MapView.tsx
#	frontend/src/tabs/prediction/components/OilSpillView.tsx
#	frontend/src/tabs/prediction/components/RightPanel.tsx
2026-03-13 14:00:47 +09:00
a8ba29fd4c Merge pull request 'feat(prediction): 시뮬레이션 에러 모달 추가 및 보고서 해안부착 현황 개선' (#88) from feature/function_develop into develop 2026-03-13 13:41:41 +09:00
59f4753c12 Merge branch 'develop' of https://gitea.gc-si.dev/gc/wing-ops into feature/function_develop
# Conflicts:
#	docs/RELEASE-NOTES.md
2026-03-13 13:31:41 +09:00
fb2dcce1f5 Merge branch 'feature/function_develop' into develop 2026-03-13 13:27:55 +09:00
827dab27a0 docs: 릴리즈 노트 업데이트 2026-03-13 13:17:01 +09:00