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,
}) {
  return (stream ?? defaultHeadingStreamSource())
      .where((CompassEvent? e) => e == null || e.heading != null)
      .map(
    (CompassEvent? e) {
      return e != null
          ? LocationMarkerHeading(
              heading: degToRadian(e.heading!),
              accuracy: (e.accuracy ?? defAccuracy).clamp(
                minAccuracy,
                maxAccuracy,
              ),
            )
          : null;
    },
  );
}