fromCompassHeadingStream method

Stream<LocationMarkerHeading?> fromCompassHeadingStream({
  1. Stream<CompassEvent?>? 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_compass stream.

Implementation

Stream<LocationMarkerHeading?> fromCompassHeadingStream({
  Stream<CompassEvent?>? stream,
  double minAccuracy = pi * 0.1,
  double defAccuracy = pi * 0.3,
  double maxAccuracy = pi * 0.4,
}) =>
    (stream ?? defaultHeadingStreamSource())
        .where((e) => e == null || e.heading != null)
        .map(
          (e) => e != null
              ? LocationMarkerHeading(
                  heading: degToRadian(e.heading!),
                  accuracy: e.accuracy != null
                      ? degToRadian(e.accuracy!)
                          .clamp(minAccuracy, maxAccuracy)
                      : defAccuracy,
                )
              : null,
        );