getPositionStream method
The position update stream.
Fires whenever the location changed inside the bounds of the RequestSettings.accuracy
Implementation
@override
Stream<Position> getPositionStream([Function(PositionError)? failure]) {
if (_positionStream != null) {
return _positionStream!;
}
var originalStream = _eventChannelPosition
.receiveBroadcastStream()
.handleError((dynamic error) {
if (failure != null) {
failure(
PositionError.fromPlatformException(error as PlatformException));
} else {
dev.log(
'getPositionStream error!!! Uncaught position error: $error. You should provide a failure callback.');
throw error;
}
});
var positionStream =
originalStream.asBroadcastStream(onCancel: (controller) {
controller.cancel();
_positionStream = null;
});
_positionStream = positionStream.map<Position>(
(dynamic e) => Position.fromMap(e.cast<String, dynamic>()));
return _positionStream!;
}