description

# watchPosition method

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: () {
              final id = watchId;
              if (id != null) _clearWatch(id);
            },
          );
      controller.onListen = () {
        assert(watchId == null);
        watchId = _watchPosition(
          (position) {
            controller.add(_ensurePosition(position));
          },
          (error) {
            controller.addError(error);
          },
          options,
        );
      };

      return controller.stream;
    }