kcg-monitoring/frontend/src/services/coastGuard.ts
Nan Kyung Lee 7174dfd629 feat: 중국어선 조업분석, 어구/어망 분류, 이란 시설, 레이어 재구성
- 어선 분류 개선: AIS Ship Type 30 + category fallback + 선박명 패턴
- 어구/어망 카테고리 신설: 선박명_숫자_ / 선박명% 패턴으로 분류
- 중국어선 조업분석: GC-KCG-2026-001 + CSSA 보고서 기반 (안강망 추가)
- 중국어선 선단 탐지: 본선-부속선 쌍, 운반선 환적, 선망 선단
- 어구/어망 → 모선 연결선 시각화
- 어구 SVG 아이콘 5종 (트롤/자망/안강망/선망/기본)
- 이란 주변국 시설 레이어 (MEFacilityLayer 35개소)
- 사우스파르스 가스전 피격 + 카타르 라스라판 보복 공격 반영
- 한국 해군부대 10개소 추가
- 레이어 재구성: 선박(최상위) → 항공망(항공기+위성) → 해양안전 → 국가기관망
- 어선 국적별 하위 분류 (선박 분류 내 어선 펼치기)
- 오른쪽 패널 접기/펼치기 (한국현황, 중국현황, 조업분석, OSINT)
- 항공망 기본 접힘 처리
- 센서차트 기본 숨김

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 16:46:27 +09:00

96 lines
6.0 KiB
TypeScript

// ═══ 대한민국 해양경찰청 시설 위치 ═══
// Korea Coast Guard (KCG) facilities
export type CoastGuardType = 'hq' | 'regional' | 'station' | 'substation' | 'vts' | 'navy';
export interface CoastGuardFacility {
id: number;
name: string;
type: CoastGuardType;
lat: number;
lng: number;
}
const TYPE_LABEL: Record<CoastGuardType, string> = {
hq: '본청',
regional: '지방청',
station: '해양경찰서',
substation: '파출소',
vts: 'VTS센터',
navy: '해군부대',
};
export { TYPE_LABEL as CG_TYPE_LABEL };
export const COAST_GUARD_FACILITIES: CoastGuardFacility[] = [
// ═══ 본청 ═══
{ id: 1, name: '해양경찰청 본청', type: 'hq', lat: 36.9870, lng: 126.9300 },
// ═══ 지방해양경찰청 ═══
{ id: 10, name: '중부지방해양경찰청', type: 'regional', lat: 37.4563, lng: 126.5958 },
{ id: 11, name: '서해지방해양경찰청', type: 'regional', lat: 34.8118, lng: 126.3922 },
{ id: 12, name: '남해지방해양경찰청', type: 'regional', lat: 34.7436, lng: 127.7370 },
{ id: 13, name: '동해지방해양경찰청', type: 'regional', lat: 37.7695, lng: 128.8760 },
{ id: 14, name: '제주지방해양경찰청', type: 'regional', lat: 33.5170, lng: 126.5310 },
// ═══ 해양경찰서 ═══
{ id: 20, name: '인천해양경찰서', type: 'station', lat: 37.4500, lng: 126.6100 },
{ id: 21, name: '평택해양경찰서', type: 'station', lat: 36.9694, lng: 126.8319 },
{ id: 22, name: '태안해양경찰서', type: 'station', lat: 36.7456, lng: 126.2978 },
{ id: 23, name: '보령해양경찰서', type: 'station', lat: 36.3500, lng: 126.5880 },
{ id: 24, name: '군산해양경찰서', type: 'station', lat: 35.9750, lng: 126.6530 },
{ id: 25, name: '목포해양경찰서', type: 'station', lat: 34.7930, lng: 126.3840 },
{ id: 26, name: '완도해양경찰서', type: 'station', lat: 34.3110, lng: 126.7550 },
{ id: 27, name: '여수해양경찰서', type: 'station', lat: 34.7440, lng: 127.7360 },
{ id: 28, name: '통영해양경찰서', type: 'station', lat: 34.8540, lng: 128.4330 },
{ id: 29, name: '창원해양경찰서', type: 'station', lat: 35.0800, lng: 128.5970 },
{ id: 30, name: '부산해양경찰서', type: 'station', lat: 35.1028, lng: 129.0360 },
{ id: 31, name: '울산해양경찰서', type: 'station', lat: 35.5067, lng: 129.3850 },
{ id: 32, name: '포항해양경찰서', type: 'station', lat: 36.0320, lng: 129.3650 },
{ id: 33, name: '동해해양경찰서', type: 'station', lat: 37.5250, lng: 129.1140 },
{ id: 34, name: '속초해양경찰서', type: 'station', lat: 38.2040, lng: 128.5910 },
{ id: 35, name: '제주해양경찰서', type: 'station', lat: 33.5200, lng: 126.5250 },
{ id: 36, name: '서귀포해양경찰서', type: 'station', lat: 33.2400, lng: 126.5620 },
// ═══ 주요 파출소 ═══
{ id: 50, name: '옹진해양경찰파출소', type: 'substation', lat: 37.0333, lng: 125.6833 },
{ id: 51, name: '연평해양경찰파출소', type: 'substation', lat: 37.6660, lng: 125.7000 },
{ id: 52, name: '백령해양경찰파출소', type: 'substation', lat: 37.9670, lng: 124.7170 },
{ id: 53, name: '덕적해양경찰파출소', type: 'substation', lat: 37.2320, lng: 126.1450 },
{ id: 54, name: '흑산해양경찰파출소', type: 'substation', lat: 34.6840, lng: 125.4350 },
{ id: 55, name: '거문해양경찰파출소', type: 'substation', lat: 34.0290, lng: 127.3080 },
{ id: 56, name: '추자해양경찰파출소', type: 'substation', lat: 33.9540, lng: 126.2960 },
{ id: 57, name: '울릉해양경찰파출소', type: 'substation', lat: 37.4840, lng: 130.9060 },
{ id: 58, name: '독도해양경찰파출소', type: 'substation', lat: 37.2426, lng: 131.8647 },
{ id: 59, name: '마라도해양경찰파출소', type: 'substation', lat: 33.1140, lng: 126.2670 },
// ═══ VTS (Vessel Traffic Service) 센터 ═══
{ id: 100, name: '인천VTS', type: 'vts', lat: 37.4480, lng: 126.6020 },
{ id: 101, name: '평택VTS', type: 'vts', lat: 36.9600, lng: 126.8220 },
{ id: 102, name: '대산VTS', type: 'vts', lat: 36.9850, lng: 126.3530 },
{ id: 103, name: '군산VTS', type: 'vts', lat: 35.9880, lng: 126.5800 },
{ id: 104, name: '목포VTS', type: 'vts', lat: 34.7850, lng: 126.3780 },
{ id: 105, name: '완도VTS', type: 'vts', lat: 34.3250, lng: 126.7540 },
{ id: 106, name: '여수VTS', type: 'vts', lat: 34.7480, lng: 127.7420 },
{ id: 107, name: '통영VTS', type: 'vts', lat: 34.8500, lng: 128.4280 },
{ id: 108, name: '마산VTS', type: 'vts', lat: 35.0720, lng: 128.5780 },
{ id: 109, name: '부산VTS', type: 'vts', lat: 35.0750, lng: 129.0780 },
{ id: 110, name: '울산VTS', type: 'vts', lat: 35.5100, lng: 129.3750 },
{ id: 111, name: '포항VTS', type: 'vts', lat: 36.0450, lng: 129.3800 },
{ id: 112, name: '동해VTS', type: 'vts', lat: 37.5300, lng: 129.1200 },
{ id: 113, name: '속초VTS', type: 'vts', lat: 38.2100, lng: 128.5930 },
{ id: 114, name: '제주VTS', type: 'vts', lat: 33.5150, lng: 126.5400 },
// ═══ 🇰🇷 대한민국 해군부대 ═══
{ id: 200, name: '해군작전사령부 (부산)', type: 'navy', lat: 35.0800, lng: 129.0800 },
{ id: 201, name: '제1함대사령부 (동해)', type: 'navy', lat: 37.5100, lng: 129.1100 },
{ id: 202, name: '제2함대사령부 (평택)', type: 'navy', lat: 36.9700, lng: 126.8200 },
{ id: 203, name: '제3함대사령부 (목포)', type: 'navy', lat: 34.7900, lng: 126.3800 },
{ id: 204, name: '제주기지전대 (제주)', type: 'navy', lat: 33.2400, lng: 126.5700 },
{ id: 205, name: '진해군항 (창원)', type: 'navy', lat: 35.1300, lng: 128.6700 },
{ id: 206, name: '해군사관학교 (진해)', type: 'navy', lat: 35.1400, lng: 128.6900 },
{ id: 207, name: '제5성분전단 (포항)', type: 'navy', lat: 36.0200, lng: 129.3700 },
{ id: 208, name: '제6항공전단 (포항)', type: 'navy', lat: 35.9900, lng: 129.4200 },
{ id: 209, name: '제2연평해전 전적지 (NLL)', type: 'navy', lat: 37.6600, lng: 125.6200 },
];