/** * 선박 아이콘 유틸리티 * * 선박 종류 코드와 항해/정박 상태에 따라 적절한 아이콘을 제공 */ import { ICON_MAPPING_KIND_MOVING, ICON_MAPPING_KIND_STOPPING } from '../../types/constants'; /** * 선박 종류 코드와 항해 상태로 아이콘 이름 가져오기 * * @param {string} shipKindCode 선박 종류 코드 (000020-000028) * @param {boolean} [isMoving=true] 항해 중 여부 * @returns {string} 아이콘 매핑 키 */ export function getShipIconUrl(shipKindCode, isMoving = true) { const iconMapping = isMoving ? ICON_MAPPING_KIND_MOVING : ICON_MAPPING_KIND_STOPPING; return iconMapping[shipKindCode] || iconMapping['000027']; } /** * 속도 기반 선박 아이콘 가져오기 * 0.5 knots를 기준으로 항해 중 여부를 결정 * * @param {string} shipKindCode 선박 종류 코드 * @param {number} [speed=0] 선박 속도 (knots) * @returns {string} 아이콘 매핑 키 */ export function getV2ShipIconUrl(shipKindCode, speed = 0) { const isMoving = speed > 0.5; return getShipIconUrl(shipKindCode, isMoving); } /** * 선박 종류 코드를 한글 이름으로 변환 * * @param {string} shipKindCode 선박 종류 코드 * @returns {string} 선박 타입 한글 이름 */ export function getShipKindName(shipKindCode) { const kindNames = { '000020': '어선', '000021': '함정', '000022': '여객선', '000023': '화물선', '000024': '유조선', '000025': '관공선', '000027': '기타', '000028': '부이', }; return kindNames[shipKindCode] || '기타'; } /** * 신호 소스 코드를 이름으로 변환 * * @param {string} signalSourceCode 신호 소스 코드 * @returns {string} 신호 소스 이름 */ export function getSignalSourceName(signalSourceCode) { const sourceNames = { '000001': 'AIS', '000002': 'E-NAV', '000003': 'V-PASS', '000004': 'VTS-AIS', '000005': 'VTS-RADAR', '000016': 'D-MF/HF', }; return sourceNames[signalSourceCode] || signalSourceCode; }