getCurrentLocation method
Future<LocationModel?>
getCurrentLocation({
- LocationAccuracy accuracy = LocationAccuracy.high,
- Duration? timeLimit,
Get current location with coordinates only
Implementation
Future<LocationModel?> getCurrentLocation({
LocationAccuracy accuracy = LocationAccuracy.high,
Duration? timeLimit,
}) async {
try {
// Check if location services are enabled
bool serviceEnabled = await isLocationServiceEnabled();
if (!serviceEnabled) {
throw Exception('Location services are disabled');
}
// Check permissions
LocationPermission permission = await checkPermission();
if (permission == LocationPermission.denied) {
permission = await requestPermission();
if (permission == LocationPermission.denied) {
throw Exception('Location permission denied');
}
}
if (permission == LocationPermission.deniedForever) {
throw Exception('Location permissions are permanently denied');
}
// Get position
LocationSettings locationSettings = LocationSettings(
accuracy: accuracy,
timeLimit: timeLimit,
);
Position position = await Geolocator.getCurrentPosition(
locationSettings: locationSettings,
);
return LocationModel.fromCoordinates(
latitude: position.latitude,
longitude: position.longitude,
);
} catch (e) {
throw Exception('Failed to get current location: $e');
}
}