kcg-monitoring/frontend/src/services/koreaEez.ts
htlee 2534faa488 feat: 프론트엔드 모노레포 이관 + signal-batch 연동 + Tailwind/i18n/테마 전환
- frontend/ 폴더로 프론트엔드 전체 이관
- signal-batch API 연동 (한국 선박 위치 데이터)
- Tailwind CSS 4 + CSS 변수 테마 토큰 (dark/light)
- i18next 다국어 (ko/en) 인프라 + 28개 컴포넌트 적용
- 레이어 패널 트리 구조 재설계 (카테고리별 온/오프, 범례)
- Google OAuth 로그인 화면 + DEV LOGIN 우회
- 외부 API CORS 프록시 전환 (Airplanes.live, OpenSky, CelesTrak)
- ShipLayer 이미지 탭 전환 (signal-batch / MarineTraffic)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 13:54:41 +09:00

123 lines
3.0 KiB
TypeScript

// ═══ 대한민국 배타적 경제수역(EEZ) 경계 좌표 ═══
// 출처: 해양수산부, UNCLOS, 한일/한중 어업협정, NLL 기준
// 서해(한중 잠정조치수역), 남해(한일 중간수역), 동해(한일 중간선) 포함
// EEZ 외곽 경계 (시계방향, [lat, lng])
export const KOREA_EEZ_BOUNDARY: [number, number][] = [
// ── 서해 NLL 부근 (북서단) ──
[37.75, 124.40],
[37.70, 124.10],
[37.40, 123.70],
[37.00, 123.50],
[36.60, 123.30],
[36.20, 123.20],
[35.80, 123.10],
[35.40, 123.00],
[35.00, 122.90],
// ── 서해 남부 (한중 중간선 부근) ──
[34.60, 122.80],
[34.20, 123.00],
[33.80, 123.30],
[33.40, 123.60],
[33.00, 124.00],
// ── 제주도 남서~남 ──
[32.60, 124.40],
[32.30, 125.00],
[32.10, 125.60],
[32.00, 126.20],
// ── 제주도 남쪽 (한일 중간수역 북방한계) ──
[32.00, 126.80],
[32.10, 127.30],
[32.20, 127.80],
[32.40, 128.10],
// ── 대한해협 (대마도 서쪽, 한일 중간선) ──
// 대마도(쓰시마) 서안 129.2°E → 중간선은 약 128.5°E
[32.70, 128.40],
[33.00, 128.50],
[33.50, 128.60],
[34.00, 128.80],
[34.40, 129.10],
// ── 동해 남부 (한일 중간선) ──
[34.80, 129.40],
[35.20, 129.70],
[35.60, 130.00],
[36.00, 130.20],
[36.50, 130.40],
[37.00, 130.60],
// ── 동해 중부~북부 (울릉도 동쪽) ──
[37.50, 130.80],
[38.00, 130.90],
[38.30, 130.80],
[38.60, 130.60],
// ── 동해안 따라 남하 (영해 외곽) ──
[38.50, 128.80],
[38.35, 128.60],
[38.30, 128.55],
// ── 서해 NLL 연결 (육지 경유 개념, 실제는 해상만 표시) ──
// 생략 — 폴리곤을 닫기 위해 시작점으로 복귀
[37.75, 124.40],
];
// 한일 중간수역 (Joint Management Zone) — 사용하지 않음, 참고용
export const KOREA_JAPAN_JMZ: [number, number][] = [];
// 한중 잠정조치수역 (Provisional Measures Zone)
export const KOREA_CHINA_PMZ: [number, number][] = [
[37.00, 123.00],
[36.75, 122.80],
[36.25, 122.60],
[35.75, 122.50],
[35.25, 122.40],
[34.50, 122.50],
[34.00, 122.80],
[33.50, 123.20],
[33.00, 123.60],
[32.50, 124.20],
[32.50, 124.80],
[33.00, 124.50],
[33.50, 124.20],
[34.00, 124.00],
[34.50, 123.80],
[35.00, 123.70],
[35.50, 123.60],
[36.00, 123.50],
[36.50, 123.40],
[37.00, 123.30],
[37.00, 123.00],
];
// 독도 주변 12해리 영해 (원형 근사)
export const DOKDO_TERRITORIAL: { center: [number, number]; radiusKm: number } = {
center: [37.2417, 131.8647],
radiusKm: 22.2, // 12 nautical miles
};
// 서해 5도 NLL (Northern Limit Line)
export const NLL_WEST_SEA: [number, number][] = [
[37.75, 124.40],
[37.74, 124.65],
[37.72, 124.90],
[37.70, 125.10],
[37.68, 125.30],
[37.67, 125.50],
[37.67, 125.70],
];
// 동해 NLL
export const NLL_EAST_SEA: [number, number][] = [
[38.60, 128.35],
[38.60, 128.60],
[38.60, 129.00],
[38.60, 129.50],
[38.60, 130.00],
[38.60, 130.60],
];