flightRules property
Get the flight rules of the report or forecast.
Implementation
String? get flightRules {
final prevailing = _prevailing.inMeters;
double? ceiling;
if (_clouds.length > 0) {
for (final cloud in _clouds.items) {
if (<String>['broken', 'overcast', 'indefinite ceiling']
.contains(cloud.cover)) {
ceiling = cloud.heightInMeters;
break;
}
}
}
if (prevailing == null && ceiling == null) {
return null;
}
for (final flightRule in FLIGHT_RULES.keys) {
final rules = FLIGHT_RULES[flightRule]!;
if (prevailing != null && ceiling != null) {
if (ceiling < rules[0] || prevailing < rules[1]) {
return flightRule;
}
} else if (prevailing != null && ceiling == null) {
if (prevailing < rules[1]) {
return flightRule;
}
} else if (prevailing == null && ceiling != null) {
if (ceiling < rules[0]) {
return flightRule;
}
} else {
return 'VFR';
}
}
return null;
}