55 lines
2.6 KiB
TypeScript
55 lines
2.6 KiB
TypeScript
import type { FieldColorStop } from "@navsea/maplibre-particle-rn";
|
|
|
|
export type WeatherDatasetId = "wind" | "wave" | "current" | "rain";
|
|
|
|
const wind: readonly FieldColorStop[] = [
|
|
{ value: 0.00000, red: 0.16, green: 0.35, blue: 0.78, alpha: 1.00 },
|
|
{ value: 2.57222, red: 0.10, green: 0.58, blue: 0.78, alpha: 1.00 },
|
|
{ value: 5.14444, red: 0.10, green: 0.68, blue: 0.34, alpha: 1.00 },
|
|
{ value: 10.28888, red: 0.70, green: 0.68, blue: 0.08, alpha: 1.00 },
|
|
{ value: 15.43332, red: 0.88, green: 0.38, blue: 0.12, alpha: 1.00 },
|
|
{ value: 20.57776, red: 0.78, green: 0.15, blue: 0.38, alpha: 1.00 },
|
|
{ value: 30.86664, red: 0.48, green: 0.18, blue: 0.70, alpha: 1.00 },
|
|
];
|
|
|
|
const wave: readonly FieldColorStop[] = [
|
|
{ value: 0.5, red: 0.18, green: 0.58, blue: 0.68, alpha: 1.00 },
|
|
{ value: 1.0, red: 0.18, green: 0.38, blue: 0.55, alpha: 1.00 },
|
|
{ value: 1.5, red: 0.21, green: 0.38, blue: 0.71, alpha: 1.00 },
|
|
{ value: 2.0, red: 0.22, green: 0.23, blue: 0.53, alpha: 1.00 },
|
|
{ value: 6.0, red: 0.74, green: 0.29, blue: 0.35, alpha: 1.00 },
|
|
{ value: 9.0, red: 0.73, green: 0.62, blue: 0.60, alpha: 1.00 },
|
|
];
|
|
const current: readonly FieldColorStop[] = [
|
|
{ value: 0.000000, red: 0.20, green: 0.25, blue: 0.46, alpha: 1.00 },
|
|
{ value: 0.205778, red: 0.19, green: 0.50, blue: 0.18, alpha: 1.00 },
|
|
{ value: 0.411555, red: 0.50, green: 0.40, blue: 0.18, alpha: 1.00 },
|
|
{ value: 0.823110, red: 0.37, green: 0.24, blue: 0.47, alpha: 1.00 },
|
|
{ value: 1.028889, red: 0.24, green: 0.39, blue: 0.42, alpha: 1.00 },
|
|
{ value: 1.646221, red: 0.53, green: 0.53, blue: 0.53, alpha: 1.00 },
|
|
];
|
|
|
|
const rain: readonly FieldColorStop[] = [
|
|
{ value: 1.5, red: 0.21, green: 0.44, blue: 0.57, alpha: 1.00 },
|
|
{ value: 2.0, red: 0.19, green: 0.42, blue: 0.53, alpha: 1.00 },
|
|
{ value: 3.0, red: 0.20, green: 0.47, blue: 0.56, alpha: 1.00 },
|
|
{ value: 7.0, red: 0.18, green: 0.58, blue: 0.38, alpha: 1.00 },
|
|
{ value: 10.0, red: 0.47, green: 0.59, blue: 0.22, alpha: 1.00 },
|
|
{ value: 20.0, red: 0.58, green: 0.22, blue: 0.22, alpha: 1.00 },
|
|
{ value: 30.0, red: 0.58, green: 0.21, blue: 0.55, alpha: 1.00 },
|
|
];
|
|
|
|
export function colorStopsFor(id: WeatherDatasetId): readonly FieldColorStop[] {
|
|
if (id === "wind") return wind;
|
|
if (id === "wave") return wave;
|
|
if (id === "current") return current;
|
|
return rain;
|
|
}
|
|
|
|
export function legendFor(id: WeatherDatasetId): string {
|
|
if (id === "wind") return "0 / 5 / 10 / 20 / 30 / 40 / 60 kt";
|
|
if (id === "wave") return "0.5 / 1 / 1.5 / 2 / 6 / 9 m";
|
|
if (id === "current") return "0 / 0.4 / 0.8 / 1.6 / 2 / 3.2 kt";
|
|
return "1.5 / 2 / 3 / 7 / 10 / 20 / 30 mm";
|
|
}
|