@hyperviz/weather
Version:
Weather visualization module using OffscreenCanvas and Web Workers
106 lines (96 loc) • 1.87 kB
text/typescript
/**
* 날씨 레이어 타입 정의
*/
export type WeatherLayerType =
| "wind"
| "cloud"
| "solar"
| "temperature"
| "precipitation";
/**
* 위치 인터페이스
*/
export interface Location {
latitude: number;
longitude: number;
}
/**
* 온도 인터페이스
*/
export interface Temperature {
current: number;
value?: number; // 호환성을 위해 추가
unit: string;
}
/**
* 바람 인터페이스
*/
export interface Wind {
speed: number;
unit: string;
direction: number;
}
/**
* 강수량 인터페이스
*/
export interface Precipitation {
amount: number; // mm
probability: number; // %
unit?: string; // 호환성을 위해 추가
}
/**
* 구름 인터페이스
*/
export interface Cloud {
coverage: number; // %
height: number; // m
}
/**
* 일사량 인터페이스
*/
export interface Solar {
radiation: number;
unit: string;
}
/**
* 날씨 데이터 인터페이스
*/
export interface WeatherData {
location: Location;
temperature: Temperature;
wind: Wind;
humidity?: number;
cloud: Cloud;
cloudCoverage?: number; // 이전 버전과의 호환성을 위해 유지
solar: Solar;
solarRadiation?: number; // 이전 버전과의 호환성을 위해 유지
precipitation: Precipitation;
weatherDescription?: string;
time: Date;
timestamp?: string; // 이전 버전과의 호환성을 위해 유지
}
/**
* 날씨 그리드 데이터 인터페이스
*/
export interface WeatherGridData {
bounds: {
north: number;
south: number;
east: number;
west: number;
};
gridSize: {
rows: number;
cols: number;
};
data: WeatherData[][];
}
/**
* 날씨 서비스 옵션 인터페이스
*/
export interface WeatherServiceOptions {
apiKey?: string;
endpoint?: string;
updateInterval?: number; // 초 단위
mockData?: WeatherData[];
}