feat(ocean-map): Ocean 전용 지도 모듈 추가 #42

병합
htlee feature/ocean-map-module 에서 develop 로 1 commits 를 머지했습니다 2026-02-20 23:16:47 +09:00
소유자

변경 사항

MapTiler Ocean 완전 스타일(ocean/style.json) 기반 별도 베이스맵 모드 추가.
features/oceanMap/ 자체 완결 블록 — 기존 enhanced 코드 변경 없음.

신규 파일 (6개)

  • features/oceanMap/model/types.ts — OceanMapSettings 타입 + 기본값 (12개 수심 구간)
  • features/oceanMap/lib/resolveOceanStyle.ts — Ocean style fetch + 한국어 라벨
  • features/oceanMap/lib/oceanLayerIds.ts — 런타임 레이어 탐색 (discoverOceanLayers)
  • features/oceanMap/hooks/useOceanMapSettings.ts — 런타임 커스텀 (수심색상/등심선/hillshade/라벨)
  • features/oceanMap/ui/OceanMapSettingsPanel.tsx — 9개 섹션 설정 UI
  • features/oceanMap/index.ts — 배럴 export

수정 파일 (7개)

  • types.ts — BaseMapId에 'ocean' 추가, Map3DProps에 oceanMapSettings
  • bathymetry.ts — resolveMapStyle ocean 분기 (dynamic import)
  • useDashboardState.ts — baseMap persisted + oceanMapSettings 상태
  • Map3D.tsx — oceanMapSettings props + useOceanMapSettings hook
  • DashboardPage.tsx — oceanMapSettings 전달 + 설정 패널 baseMap 분기
  • DashboardSidebar.tsx — Ocean 토글 버튼
  • useMapStyleSettings.tsbaseMap === 'ocean' 가드

설계 원칙

  • 기존 enhanced 모드 코드 완전 보존 (ocean 가드로 분리)
  • resolveOceanStyle dynamic import → 별도 번들 청크
  • useMapStyleSettings / useOceanMapSettings 완전 독립 (간섭 가능성 0)

테스트

  • npm run build:web 성공 (resolveOceanStyle 별도 청크 확인)
  • npm run lint 에러 0개
  • Ocean 토글 → MapTiler Ocean 스타일 전환 확인
  • Enhanced 토글 → 기존 dataviz-dark + bathymetry 복원 확인
  • Ocean 설정 패널 수심 색상/등심선/hillshade/라벨 조절 확인
  • Globe ↔ Mercator 전환 시 Ocean 스타일 유지 확인
  • 선박/오버레이/경고 배지 정상 동작 확인
## 변경 사항 MapTiler Ocean 완전 스타일(`ocean/style.json`) 기반 별도 베이스맵 모드 추가. `features/oceanMap/` 자체 완결 블록 — 기존 enhanced 코드 변경 없음. ### 신규 파일 (6개) - `features/oceanMap/model/types.ts` — OceanMapSettings 타입 + 기본값 (12개 수심 구간) - `features/oceanMap/lib/resolveOceanStyle.ts` — Ocean style fetch + 한국어 라벨 - `features/oceanMap/lib/oceanLayerIds.ts` — 런타임 레이어 탐색 (discoverOceanLayers) - `features/oceanMap/hooks/useOceanMapSettings.ts` — 런타임 커스텀 (수심색상/등심선/hillshade/라벨) - `features/oceanMap/ui/OceanMapSettingsPanel.tsx` — 9개 섹션 설정 UI - `features/oceanMap/index.ts` — 배럴 export ### 수정 파일 (7개) - `types.ts` — BaseMapId에 `'ocean'` 추가, Map3DProps에 `oceanMapSettings` - `bathymetry.ts` — resolveMapStyle ocean 분기 (dynamic import) - `useDashboardState.ts` — baseMap persisted + oceanMapSettings 상태 - `Map3D.tsx` — oceanMapSettings props + useOceanMapSettings hook - `DashboardPage.tsx` — oceanMapSettings 전달 + 설정 패널 baseMap 분기 - `DashboardSidebar.tsx` — Ocean 토글 버튼 - `useMapStyleSettings.ts` — `baseMap === 'ocean'` 가드 ### 설계 원칙 - 기존 enhanced 모드 코드 완전 보존 (ocean 가드로 분리) - resolveOceanStyle dynamic import → 별도 번들 청크 - useMapStyleSettings / useOceanMapSettings 완전 독립 (간섭 가능성 0) ## 테스트 - [x] `npm run build:web` 성공 (resolveOceanStyle 별도 청크 확인) - [x] `npm run lint` 에러 0개 - [ ] Ocean 토글 → MapTiler Ocean 스타일 전환 확인 - [ ] Enhanced 토글 → 기존 dataviz-dark + bathymetry 복원 확인 - [ ] Ocean 설정 패널 수심 색상/등심선/hillshade/라벨 조절 확인 - [ ] Globe ↔ Mercator 전환 시 Ocean 스타일 유지 확인 - [ ] 선박/오버레이/경고 배지 정상 동작 확인
htlee added 1 commit 2026-02-20 23:15:21 +09:00
MapTiler Ocean 완전 스타일 기반 별도 베이스맵 모드.
features/oceanMap/ 자체 완결 블록 — 기존 enhanced 코드 변경 없음.

- resolveOceanStyle: Ocean style.json fetch + 한국어 라벨
- useOceanMapSettings: 런타임 커스텀 (수심색상/등심선/hillshade/라벨)
- OceanMapSettingsPanel: 9개 섹션 설정 UI
- 사이드바 Ocean 토글 + 설정 패널 baseMap 분기
- resolveMapStyle dynamic import로 번들 분리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
htlee merged commit cd9311944b into develop 2026-02-20 23:16:47 +09:00
htlee 삭제된 브랜치 feature/ocean-map-module 2026-02-20 23:16:47 +09:00
"로그인하여 이 대화에 참여"
No reviewers
레이블 없음
마일스톤 없음
담당자 없음
참여자 1명
알림
마감일
기한이 올바르지 않거나 범위를 벗어났습니다. 'yyyy-mm-dd'형식을 사용해주십시오.

마감일이 설정되지 않았습니다.

의존성

No dependencies set.

Reference: gc/gc-wing#42
No description provided.