MetarPrevailingVisibility constructor

MetarPrevailingVisibility(
  1. String? code,
  2. RegExpMatch? match
)

Implementation

MetarPrevailingVisibility(String? code, RegExpMatch? match)
    : super(code?.replaceAll('_', ' ')) {
  if (match != null) {
    final vis = match.namedGroup('vis');
    final dir = match.namedGroup('dir');
    final integer = match.namedGroup('integer');
    final fraction = match.namedGroup('fraction');
    final units = match.namedGroup('units');

    if (vis != null) {
      _visibility = Distance(vis);
    }

    if (integer != null || fraction != null) {
      if (units == 'SM') {
        _fromSeaMiles(integer, fraction);
      }

      if (units == 'KM') {
        final inMeters = int.parse(integer!) * 1000;
        _visibility = Distance('$inMeters'.padLeft(4, '0'));
      }
    }

    if (dir != null) {
      _direction = Direction.fromCardinal(dir);
    }

    final cavokMatch = match.namedGroup('cavok');
    if (cavokMatch != null) {
      cavok = true;
      _visibility = Distance('9999');
    }
  }
}