커밋 그래프

46 커밋

작성자 SHA1 메시지 날짜
cd60f553ee feat(map): 선박 외곽선 대비 및 줌 스케일링 개선
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 02:01:11 +09:00
c5d89c5641 refactor(map): Map3D.tsx hooks 추출 완료 (4558줄 → 510줄)
28개 useEffect + 30+ useCallback을 10개 커스텀 hook으로 추출:
- useMapInit: MapLibre 인스턴스 생성 + Deck 오버레이
- useProjectionToggle: Mercator↔Globe 전환
- useBaseMapToggle: 베이스맵 전환 + 수심/해도
- useZonesLayer: 수역 GeoJSON 레이어
- usePredictionVectors: 예측 벡터 레이어
- useGlobeShips: Globe 선박 아이콘/라벨/호버/클릭
- useGlobeOverlays: Globe pair/fc/fleet/range 레이어
- useGlobeInteraction: Globe 마우스 이벤트 + 툴팁
- useDeckLayers: Mercator + Globe Deck 레이어
- useFlyTo: 카메라 이동

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 00:41:11 +09:00
51090aca2a refactor(map): Map3D 모듈 분리 + 버그 4건 수정 + 수심 색상 개선
Map3D.tsx 단일 파일(5752줄)에서 1200줄을 16개 모듈로 추출하여
탐색성과 유지보수성 개선.

모듈 구조:
- types.ts, constants.ts: 타입/상수 정의
- lib/: setUtils, geometry, featureIds, mlExpressions, shipUtils,
  tooltips, globeShipIcon, mapCore, dashifyLine, layerHelpers, zoneUtils
- layers/: bathymetry, seamark
- hooks/: useHoverState

버그 수정:
- fix: Globe 선박 라벨 미표시 (permitted boolean→number + filter 갱신)
- fix: placement TypeError (isStyleLoaded 가드 + epoch change 시 remove 제거)
- fix: Globe easeTo 미지원 경고 (globe 모드에서 flyTo 사용)
- fix: 수심지도 얕은 구간 색상 미구분 (색상 팔레트 개선)

개선:
- 베이스맵 water 레이어 색상을 수심 그라데이션과 자연스럽게 연결
- 프로젝션 전환 settle 로직 최적화 (더블프레임→싱글프레임)
- glyphs URL 추가로 symbol 레이어 텍스트 렌더링 지원

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 23:57:38 +09:00
918b80e06a chore: 팀 프로젝트 워크플로우 세팅
- 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>
2026-02-15 22:18:40 +09:00
d01240a737 fix(map): align ship icon headings for COG convention 2026-02-15 21:52:04 +09:00
a8aa916076 fix(map): align prediction vectors with ship course + improve contrast 2026-02-15 19:41:15 +09:00
11aff67a04 feat(map): add prediction vectors and ship labels toggles 2026-02-15 19:15:20 +09:00
0899223c75 fix(map): keep bathymetry visible when overzooming 2026-02-15 18:55:57 +09:00
dc702728be tweak(map): increase bathymetry depth label size 2026-02-15 18:51:29 +09:00
15d5d5ad23 fix(globe): gate bathymetry fill by zoom to avoid ocean tearing 2026-02-15 18:47:52 +09:00
3497b8c7e2 feat(dashboard): alarms filter + legend/palette sync + map polish 2026-02-15 18:42:49 +09:00
30e6e584ee refactor(map3d): isolate ship hover overlay for icon flicker reduction 2026-02-15 16:35:05 +09:00
54d33a8670 fix(map3d): restore mercator static/overlay split and stabilize globe deck rendering 2026-02-15 16:28:04 +09:00
f36c63d639 chore: checkpoint before deck.gl optimization work 2026-02-15 16:23:04 +09:00
6ff5ae383f fix: restore globe ship icon color while keeping symbol layer stable 2026-02-15 16:14:03 +09:00
86d36d25e3 fix: reduce globe symbol paint variability to avoid bucket mismatch 2026-02-15 16:12:36 +09:00
5b7d1c4331 fix: stabilize globe projection loading and globe ship icon fallback 2026-02-15 16:12:10 +09:00
05b0c6b881 feat(map3d): stabilize globe overlays and hover-highlight sync 2026-02-15 16:09:21 +09:00
b944887430 Adjust globe layer stacking and keep overlay layers alive 2026-02-15 15:49:01 +09:00
70dc651230 Keep globe overlays stable and reuse globe layer IDs 2026-02-15 15:48:49 +09:00
e504dbebca Fix globe zones line-width expression and enforce map layer ordering 2026-02-15 15:43:36 +09:00
bb5fd793d8 fix: resolve globe ship circle-radius expression and ensure ship layers top 2026-02-15 15:36:29 +09:00
84a3ec2374 fix: stabilize hook order in RelationsPanel 2026-02-15 15:33:42 +09:00
ccf3f2361f fix: guard deck layer arrays against null ids 2026-02-15 15:30:09 +09:00
b883c4113b fix: guard map style and ship layer ids during rendering 2026-02-15 15:27:57 +09:00
96d8a03f93 feat: add fleet relation sort toggle 2026-02-15 15:25:10 +09:00
03d728589f Sync globe layer rebuild during projection transition 2026-02-15 15:22:23 +09:00
ed5b0da5f9 fix: prevent hover update loop and map style ready guard 2026-02-15 15:17:48 +09:00
ea51aee6b4 Fix globe tooltip typing and overlay defaults 2026-02-15 14:52:57 +09:00
9a9f7302cb fix(map3d): simplify projection loading release condition 2026-02-15 14:45:31 +09:00
f745bb16d7 feat(map3d): add projection mode transition loading overlay 2026-02-15 14:42:07 +09:00
2514591703 fix(map3d): align globe ship icon rendering and heading 2026-02-15 14:38:25 +09:00
1225d5c54c fix(map3d): sync mercator restore on globe toggle 2026-02-15 14:33:50 +09:00
6f7a82af4c fix(map): stop hiding raster base and reset decks on projection switch 2026-02-15 14:29:19 +09:00
0ffadb2e66 fix(map): harden globe projection switch and overlay teardown 2026-02-15 14:27:08 +09:00
15378ed7ff fix(map): scale flat icons and prioritize relation layers 2026-02-15 14:24:00 +09:00
c31d26124c fix(ais,map): 2-stage bootstrap and globe overlay refresh 2026-02-15 14:17:27 +09:00
b8ccef23ca fix(globe): stabilize ship symbols and deck rendering 2026-02-15 14:04:37 +09:00
bcd4a77f47 fix(api): add center/radius AIS query and stabilize globe ship icon render 2026-02-15 13:58:07 +09:00
7f72ab651d fix(globe): force repaints; maplibre overlays; disable bathy raster 2026-02-15 13:46:01 +09:00
dc0729fc5f fix(map): reduce bathymetry fill complexity at low zoom 2026-02-15 13:15:41 +09:00
84d602d25b fix(globe): avoid bathymetry overflow; fix ship halo expr 2026-02-15 13:14:03 +09:00
d4859eb361 fix(globe): stabilize deck draw; billboard ships 2026-02-15 13:03:05 +09:00
0172ed6134 fix(globe): keep deck instance across style reloads 2026-02-15 12:36:25 +09:00
b0d51a9490 fix(map): sync deck overlays with maplibre globe 2026-02-15 12:11:39 +09:00
e69ace4434 chore: initial commit 2026-02-15 11:22:38 +09:00