mirror of
https://github.com/PranshulGG/WeatherMaster.git
synced 2026-10-22 11:02:53 -05:00
97 lines
2.3 KiB
Dart
97 lines
2.3 KiB
Dart
class WeatherConditionMapper {
|
|
static const _defaultLabel = 'Not found';
|
|
|
|
static const Map<String, String> _labelMap = {
|
|
// 0: Clear sky
|
|
'0_1': 'clear_sky',
|
|
'0_0': 'clear_sky',
|
|
|
|
// 1,2,3: Mainly clear, partly cloudy, overcast
|
|
'1_1': 'mostly_clear',
|
|
'1_0': 'mostly_clear',
|
|
'2_1': 'partly_cloudy',
|
|
'2_0': 'partly_cloudy',
|
|
'3_1': 'overcast',
|
|
'3_0': 'overcast',
|
|
|
|
// 45,48: Fog
|
|
'45_1': 'fog',
|
|
'45_0': 'fog',
|
|
'48_1': 'fog',
|
|
'48_0': 'fog',
|
|
|
|
// 51,53,55: Drizzle
|
|
'51_1': 'drizzle',
|
|
'51_0': 'drizzle',
|
|
'53_1': 'drizzle',
|
|
'53_0': 'drizzle',
|
|
'55_1': 'drizzle',
|
|
'55_0': 'drizzle',
|
|
|
|
// 56,57: Freezing Drizzle
|
|
'56_1': 'freezing_drizzle',
|
|
'56_0': 'freezing_drizzle',
|
|
'57_1': 'freezing_drizzle',
|
|
'57_0': 'freezing_drizzle',
|
|
|
|
// 61,63,65: Rain
|
|
'61_1': 'moderate_rain',
|
|
'61_0': 'moderate_rain',
|
|
'63_1': 'moderate_rain',
|
|
'63_0': 'moderate_rain',
|
|
'65_1': 'heavy_intensity_rain',
|
|
'65_0': 'heavy_intensity_rain',
|
|
|
|
// 66,67: Freezing Rain
|
|
'66_1': 'freezing_rain',
|
|
'66_0': 'freezing_rain',
|
|
'67_1': 'freezing_rain',
|
|
'67_0': 'freezing_rain',
|
|
|
|
// 71,73,75: Snowfall
|
|
'71_1': 'slight_snow',
|
|
'71_0': 'slight_snow',
|
|
'73_1': 'moderate_snow',
|
|
'73_0': 'moderate_snow',
|
|
'75_1': 'heavy_intensity_snow',
|
|
'75_0': 'heavy_intensity_snow',
|
|
|
|
// 77: Snow grains
|
|
'77_1': 'snow_grains',
|
|
'77_0': 'snow_grains',
|
|
|
|
// 80,81,82: Rain showers
|
|
'80_1': 'rain_showers',
|
|
'80_0': 'rain_showers',
|
|
'81_1': 'rain_showers',
|
|
'81_0': 'rain_showers',
|
|
'82_1': 'heavy_rain_showers',
|
|
'82_0': 'heavy_rain_showers',
|
|
|
|
// 85,86: Snow showers
|
|
'85_1': 'slight_snow_showers',
|
|
'85_0': 'slight_snow_showers',
|
|
'86_1': 'heavy_snow_showers',
|
|
'86_0': 'heavy_snow_showers',
|
|
|
|
// 95: Thunderstorm (no hail)
|
|
'95_1': 'thunderstorm',
|
|
'95_0': 'thunderstorm',
|
|
|
|
// 96,99: Thunderstorm with hail
|
|
'96_1': 'strong_thunderstorm',
|
|
'96_0': 'strong_thunderstorm',
|
|
'99_1': 'strong_thunderstorm',
|
|
'99_0': 'strong_thunderstorm',
|
|
};
|
|
|
|
static String getConditionLabel(int? weatherCode, int? isDay) {
|
|
if (weatherCode == null || isDay == null) {
|
|
return _defaultLabel;
|
|
}
|
|
|
|
final key = '${weatherCode}_$isDay';
|
|
return _labelMap[key] ?? _defaultLabel;
|
|
}
|
|
}
|