smooth_compass 2.0.7
smooth_compass: ^2.0.7 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.
![]() |
![]() |
---|---|
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.7
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 compassAssetqiblahOffset
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 qiblah 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,
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: