From fbef59341ecd72aa46f3478aefaaba0361de0bd1 Mon Sep 17 00:00:00 2001 From: Nan Kyung Lee Date: Mon, 16 Mar 2026 09:53:30 +0900 Subject: [PATCH] =?UTF-8?q?feat(aerial):=20=EB=93=9C=EB=A1=A0=20=EC=95=84?= =?UTF-8?q?=EC=9D=B4=EC=BD=98=20=EC=BF=BC=EB=93=9C=EC=BD=A5=ED=84=B0=20+?= =?UTF-8?q?=20=ED=95=A8=EC=A0=95=20MarineTraffic=20=EC=82=BC=EA=B0=81?= =?UTF-8?q?=ED=98=95=20=EC=8A=A4=ED=83=80=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 함정: MarineTraffic 스타일 삼각형 (선수 방향 위, 상태색 채움) - 드론: 쿼드콥터 아이콘 (X자 팔 + 프로펠러 회전 애니메이션 + 카메라 렌즈) - 함정↔드론 점선 연결선 유지 - 송출중 REC LED 깜빡임, 드론 모델명 라벨 Co-Authored-By: Claude Opus 4.6 (1M context) --- .../tabs/aerial/components/RealtimeDrone.tsx | 63 +++++++++++-------- 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/frontend/src/tabs/aerial/components/RealtimeDrone.tsx b/frontend/src/tabs/aerial/components/RealtimeDrone.tsx index 308b0e2..6ebef2b 100644 --- a/frontend/src/tabs/aerial/components/RealtimeDrone.tsx +++ b/frontend/src/tabs/aerial/components/RealtimeDrone.tsx @@ -278,39 +278,50 @@ export function RealtimeDrone() { onClick={e => { e.originalEvent.stopPropagation(); setMapPopup(stream) }} >
- + {/* 연결선 (점선) */} - + - {/* 함정 삼각형 (좌하단) */} - - - {/* 함정명 */} - - {stream.shipName.replace(/서 /, ' ')} + {/* ── 함정: MarineTraffic 스타일 삼각형 (선수 방향 위) ── */} + + + {/* 함정명 라벨 */} + + {stream.shipName.replace(/서 /, ' ')} - {/* 드론 원형 아이콘 (우상단) */} - - {/* 드론 내부 — 십자 프로펠러 */} - - - {/* 프로펠러 4개 */} - - - - + {/* ── 드론: 쿼드콥터 아이콘 ── */} + {/* 외곽 원 */} + + {/* X자 팔 */} + + + {/* 프로펠러 4개 (회전 애니메이션) */} + + + + + + + + + + + + {/* 본체 */} - - - {/* 송출중 LED */} + + {/* 카메라 렌즈 */} + + + {/* 송출중 REC LED */} {stream.status === 'streaming' && ( - - + + )} - {/* 드론 이름 */} - - {stream.droneModel.split(' ').slice(-1)[0]} + {/* 드론 모델명 */} + + {stream.droneModel.split(' ').slice(-1)[0]}