fromRotationSensorHeadingStream method

Stream<LocationMarkerHeading?> fromRotationSensorHeadingStream({
  1. Stream<OrientationEvent>? stream,
  2. double minAccuracy = pi * 0.1,
  3. double defAccuracy = pi * 0.3,
  4. double maxAccuracy = pi * 0.4,
})

Cast to a heading stream from flutter_rotation_sensor stream.

Implementation

Stream<LocationMarkerHeading?> fromRotationSensorHeadingStream({
  Stream<OrientationEvent>? stream,
  double minAccuracy = pi * 0.1,
  double defAccuracy = pi * 0.3,
  double maxAccuracy = pi * 0.4,
}) => (stream ?? defaultHeadingStreamSource()).map((e) {
  try {
    return LocationMarkerHeading(
      heading: e.eulerAngles.azimuth,
      accuracy: e.accuracy >= 0
          ? degToRadian(e.accuracy).clamp(minAccuracy, maxAccuracy)
          : defAccuracy,
    );
  } on ArgumentException catch (error, stack) {
    log(
      'Invalid LocationMarkerHeading',
      level: 900,
      error: error,
      stackTrace: stack,
    );
    return null;
  }
});