interface WeatherData { stationName: string; location: { lat: number; lon: number }; currentTime: string; wind: { speed: number; direction: number; directionLabel: string; speed_1k: number; speed_3k: number; }; wave: { height: number; maxHeight: number; period: number; direction: string; }; temperature: { current: number; feelsLike: number; }; pressure: number; visibility: number; salinity: number; astronomy?: { sunrise: string; sunset: string; moonrise: string; moonset: string; moonPhase: string; tidalRange: number; }; alert?: string; forecast: WeatherForecast[]; } interface WeatherForecast { time: string; hour: string; icon: string; temperature: number; windSpeed: number; } interface WeatherRightPanelProps { weatherData: WeatherData | null; } /* ── Local Helpers (not exported) ─────────────────────────── */ function WindCompass({ degrees }: { degrees: number }) { // center=28, radius=22 return ( ); } function ProgressBar({ value, max, gradient, label }: { value: number; max: number; gradient: string; label: string }) { const pct = Math.min(100, (value / max) * 100); return (
지도에서 해양 지점을 클릭하세요
{weatherData.location.lat.toFixed(2)}°N, {weatherData.location.lon.toFixed(2)}°E · {weatherData.currentTime}