description

# watchPosition method Null safety

Stream<Geoposition> watchPosition (

1. {bool? enableHighAccuracy,
2. Duration? timeout,
3. Duration? maximumAge}

)

## Implementation

    Stream<Geoposition> watchPosition(
        {bool? enableHighAccuracy, Duration? timeout, Duration? maximumAge}) {
      var options = {};
      if (enableHighAccuracy != null) {
        options['enableHighAccuracy'] = enableHighAccuracy;
      }
      if (timeout != null) {
        options['timeout'] = timeout.inMilliseconds;
      }
      if (maximumAge != null) {
        options['maximumAge'] = maximumAge.inMilliseconds;
      }

      int? watchId;
      StreamController<Geoposition> controller =
          new StreamController<Geoposition>(
              sync: true,
              onCancel: () {
                assert(watchId != null);
                _clearWatch(watchId!);
              });
      controller.onListen = () {
        assert(watchId == null);
        watchId = _watchPosition((position) {
          controller.add(_ensurePosition(position));
        }, (error) {
          controller.addError(error);
        }, options);
      };

      return controller.stream;
    }