- overlay 파괴/재생성 대신 layers 비움으로 전환
- globe ship 레이어 visibility 즉시 토글 (projectionBusy 우회)
- fleet circles fill vertex 초과 수정 (steps 72→36/24)
- globe scrollZoom easing 경고 수정
- projection 비영속화 (항상 mercator 시작)
- globe 레이어 준비 전까지 3D 토글 비활성화
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
usePersistedState hook으로 대시보드 상태를
localStorage에 자동 저장. 지도 뷰(중심/줌/방위)도
60초 주기 + 언마운트 시 저장하여 새로고침 복원.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
shared/lib/datetime.ts에 KST 고정 포맷 함수 추가.
AIS 정보, 선박 목록, 대시보드 등의 날짜 표시를
로컬 포맷에서 KST 명시적 포맷으로 통일.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 육지색 적용 범위 확대 (background + 전체 fill 레이어)
- UI 가독성 개선: 라벨 10px, 색상 대비 강화
- 수심 구간 '자동채우기' 토글 추가 (최소/최대 기준 보간)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 나침반/줌 컨트롤 분리, 기어 버튼으로 설정 패널 토글
- 설정 항목: 레이블 언어, 육지/물/수심 색상, 수심 폰트 크기/색상
- 런타임 map.setPaintProperty/setLayoutProperty로 즉시 적용
- 수심 색상 범례 (좌하단 그라데이션 바 + 눈금)
- 초기화 버튼으로 디폴트 복원
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 수심 레이블: minzoom 10→7, 텍스트 크기 확대, halo 가독성 개선
- 해저 지형명: minzoom 8→6, 텍스트 크기 확대
- MapTiler 베이스맵 한글 지명 적용 (name:ko fallback)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- useNativeMapLayers 범용 hook 생성
- source/layer 생성, visibility, cleanup 자동화
- projectionBusy/isStyleLoaded 가드 내장
- Globe 레이어 순서 관리 내장
- beforeLayer 후보 배열 지원
- useSubcablesLayer를 useNativeMapLayers로 전환
- React Compiler ref 접근 규칙 준수 (useEffect 내 할당)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- useEffect 3개 분리 (레이어생성/호버/이벤트)
- hoveredCableId를 레이어 생성 deps에서 분리하여 깜박임 제거
- 이벤트 바인딩에 retry 로직 추가 (프로젝션 전환 후)
- paint 기본값을 상수로 추출하여 일관성 보장
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- MapLibre 중첩 interpolate 표현식 에러 수정
- 6레이어 구조: hitarea, casing, line, glow, points, label
- 호버 시 flat value 사용 (case 내 interpolate 제거)
- Globe/Mercator 양쪽 프로젝션 레이어 순서 지원
- 진한 색상, 굵은 라인, 포인트 마커로 시인성 향상
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- subcable entity 생성 (타입 정의 + 데이터 로딩 hook)
- MapLibre 레이어: 케이블 라인 + 호버 하이라이트 + 라벨
- 지도 표시 설정에 해저케이블 토글 추가
- 클릭 시 우측 정보 패널 (길이, 개통, 운영사, landing points)
- Map3D + DashboardPage 통합
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- pnpm → npm 전환 (워크스페이스 유지)
- .claude/ 팀 규칙(5), 스킬(4), 설정, hooks 스크립트(3) 추가
- .githooks/ commit-msg, post-checkout, pre-commit 추가
- Nexus npm 프록시 설정 (.npmrc — URL만, 인증 제외)
- .editorconfig, .prettierrc, .node-version(24) 추가
- CLAUDE.md 프로젝트 설명서 생성
- Map3D.tsx 미사용 함수 제거 (getDeckShipAngle)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>