25-3/18/1
This commit is contained in:
89
lib/controller/functions/location_controller.dart
Normal file → Executable file
89
lib/controller/functions/location_controller.dart
Normal file → Executable file
@@ -170,7 +170,7 @@ class LocationController extends GetxController {
|
||||
|
||||
Future<void> getLocation() async {
|
||||
if (location == null) {
|
||||
location = Location(); // Ensure location is initialized
|
||||
location = Location(); // تأكد من أن `Location` مهيأ
|
||||
}
|
||||
|
||||
bool serviceEnabled;
|
||||
@@ -192,27 +192,80 @@ class LocationController extends GetxController {
|
||||
}
|
||||
}
|
||||
|
||||
LocationData _locationData = await location.getLocation();
|
||||
if (_locationData.latitude != null && _locationData.longitude != null) {
|
||||
myLocation = LatLng(_locationData.latitude!, _locationData.longitude!);
|
||||
} else {
|
||||
myLocation = LatLng(0, 0); // Default value
|
||||
}
|
||||
/// **تجنب استدعاء `getLocation()` مباشرة على الـ Main Thread**
|
||||
Future.delayed(Duration(milliseconds: 500), () async {
|
||||
try {
|
||||
LocationData _locationData = await location.getLocation();
|
||||
if (_locationData.latitude != null && _locationData.longitude != null) {
|
||||
myLocation =
|
||||
LatLng(_locationData.latitude!, _locationData.longitude!);
|
||||
} else {
|
||||
myLocation = LatLng(0, 0); // Default value
|
||||
}
|
||||
|
||||
speed = _locationData.speed ?? 0;
|
||||
heading = _locationData.heading ?? 0;
|
||||
speed = _locationData.speed ?? 0;
|
||||
heading = _locationData.heading ?? 0;
|
||||
|
||||
if (Get.find<HomeCaptainController>().rideId == 'rideId') {
|
||||
if (previousTime > 0) {
|
||||
double distance = calculateDistanceInKmPerHour(
|
||||
previousTime, _locationData.time, speed);
|
||||
totalDistance += distance;
|
||||
if (Get.find<HomeCaptainController>().rideId == 'rideId') {
|
||||
if (previousTime > 0) {
|
||||
double distance = calculateDistanceInKmPerHour(
|
||||
previousTime, _locationData.time, speed);
|
||||
totalDistance += distance;
|
||||
}
|
||||
previousTime = _locationData.time ?? 0;
|
||||
}
|
||||
|
||||
update();
|
||||
} catch (e) {
|
||||
print("Error getting location: $e");
|
||||
}
|
||||
previousTime = _locationData.time ?? 0;
|
||||
}
|
||||
|
||||
update();
|
||||
});
|
||||
}
|
||||
// Future<void> getLocation() async {
|
||||
// if (location == null) {
|
||||
// location = Location(); // Ensure location is initialized
|
||||
// }
|
||||
|
||||
// bool serviceEnabled;
|
||||
// PermissionStatus permissionGranted;
|
||||
|
||||
// serviceEnabled = await location.serviceEnabled();
|
||||
// if (!serviceEnabled) {
|
||||
// serviceEnabled = await location.requestService();
|
||||
// if (!serviceEnabled) {
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
// permissionGranted = await location.hasPermission();
|
||||
// if (permissionGranted == PermissionStatus.denied) {
|
||||
// permissionGranted = await location.requestPermission();
|
||||
// if (permissionGranted != PermissionStatus.granted) {
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
// LocationData _locationData = await location.getLocation();
|
||||
// if (_locationData.latitude != null && _locationData.longitude != null) {
|
||||
// myLocation = LatLng(_locationData.latitude!, _locationData.longitude!);
|
||||
// } else {
|
||||
// myLocation = LatLng(0, 0); // Default value
|
||||
// }
|
||||
|
||||
// speed = _locationData.speed ?? 0;
|
||||
// heading = _locationData.heading ?? 0;
|
||||
|
||||
// if (Get.find<HomeCaptainController>().rideId == 'rideId') {
|
||||
// if (previousTime > 0) {
|
||||
// double distance = calculateDistanceInKmPerHour(
|
||||
// previousTime, _locationData.time, speed);
|
||||
// totalDistance += distance;
|
||||
// }
|
||||
// previousTime = _locationData.time ?? 0;
|
||||
// }
|
||||
|
||||
// update();
|
||||
// }
|
||||
|
||||
double calculateDistanceInKmPerHour(
|
||||
double? startTime, double? endTime, double speedInMetersPerSecond) {
|
||||
|
||||
Reference in New Issue
Block a user