| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import 'dart:async';
- import 'package:get/get.dart';
- import 'package:trackoffical_app/service/app.dart';
- import 'package:sensor/sensor.dart' as sensor;
- import 'compass_updater.dart';
- import 'plug.dart';
- typedef Orientation = sensor.Orientation;
- class PlugOrientation extends Plug{
- PlugOrientation();
- final _app = App.to;
- final _angleSrcUpdater = CompassUpdater();
- final orientation=Orientation().obs;
- // /// 指北针弧度,移动时通过GPS判断
- // final compassRadiansFused = 0.0.obs;
- final compassRadiansSrc = 0.0.obs;
- var accelerometerEvent = sensor.Orientation();
- var compassRealNorthOffset = 0.0;
- @override
- Future<void> init() async{
- listenStream(sensor.Sensor.orientationStream, (event) {
- orientation.value = event;
- var direction = event.z;
- if (App.to.userProfile.gameSettingsRealNorth.value) {
- direction += compassRealNorthOffset;
- }
- final src = _angleSrcUpdater.updateRadians(direction);
- if(src!=null){
- compassRadiansSrc.value = -src;
- }
- });
- }
- @override
- Future<void> onClose() async{
- _app.locationStop();
- }
- }
|