smooth_compass 2.0.5 icon indicating copy to clipboard operation
smooth_compass: ^2.0.5 copied to clipboard

smooth compass with animated rotation and custom widgets support for both(android and ios)

Smooth Compass #

Customizable flutter package to find direction using device motion sensors.

Image Image
SmoothCompass with default Widget SmoothCompass with custom Widget

Features #

  • Extensive, yet easy to use
  • Preconfigured UI and custome UI support
  • Custom builder
  • Smooth Rotation
  • Values in degrees
  • (NEW) Qiblah angle

Usage #

Make sure to check out examples

Installation #

Add the following line to pubspec.yaml:

dependencies:
  smooth_compass: ^2.0.5

Basic setup #

The complete example is available here.

SmoothCompass provide compassBuilder which returns:

  • degrees is the directional value.
  • turns is the value for compass rotation.
  • compassAsset the (default) widget for compass or the Widget passed in compassAsset
  • qiblahOffset returns the qiblah angle for the current location

SmoothCompass Optional Arguments Height, Width, Duration, currentLoc and compassAsset:

  • compassAsset is the customizable widget for compass. if not provider default will shown.
  • currentLoc must be provided, if you want to find the angle for current location, the default qiblah value will be 0.

Default Widget (versions before 2.0.0):

SmoothCompass(
 rotationSpeed: 200,
 height: 300,
 width: 300,
// compassAsset:CustomWidget(),   you custom compass widget here
 compassBuilder: (context,AsyncSnapshot<CompassModel>? compassData,Widget compassAsset){
   return compassAsset;
    },
  ),

Default Widget:

  SmoothCompass(
   //higher the value of rotation speed slower the rotation
    rotationSpeed: 200,
    height: 300,
    width: 300,
)

Custom Widget:

SmoothCompass(
  rotationSpeed: 200,
  height: 300,
  currentLoc: MyLoc(latitude: 33.9731427, longitude: 71.4751405),
  width: 300,
  compassAsset: CustomWidget(),
)

Custom Widget with qiblah:

SmoothCompass(
  rotationSpeed: 200,
  height: 300,
  currentLoc: MyLoc(latitude: 33.9731427, longitude: 71.4751405),
  width: 300,
  compassAsset: CustomWidget(),
  compassBuilder: (context,snapshot,child){
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        child,
        Text("${snapshot?.data?.qiblahOffset}")
      ],
    );
  },
)

Custom Builder if you want to access compass readings in your widget:

SmoothCompass(
  rotationSpeed: 200,
  height: 300,
  width: 300,
  compassBuilder: (context,AsyncSnapshot<CompassModel>? compassData,Widget child){
    //return child if you want to use the default widget or the widget you have passed 
    return child;
    /*if you want to design a new widget here then
    return YourWidgetHere();
     */
  },
),

Support

for any queries or issue contact at:

42
likes
0
pub points
89%
popularity

Publisher

unverified uploader

smooth compass with animated rotation and custom widgets support for both(android and ios)

Repository (GitHub)
View/report issues

License

Icon for licenses.unknown (LICENSE)

Dependencies

flutter, flutter_sensors, sensors_plus, vector_math

More

Packages that depend on smooth_compass