getLocation function
Get device location Returns null if permission is denied or unavailable
Implementation
Future<LocationData?> getLocation() async {
try {
// Check if location services are enabled
bool serviceEnabled = await Geolocator.isLocationServiceEnabled();
if (!serviceEnabled) {
return null;
}
// Check location permissions
LocationPermission permission = await Geolocator.checkPermission();
if (permission == LocationPermission.denied) {
permission = await Geolocator.requestPermission();
if (permission == LocationPermission.denied) {
return null;
}
}
if (permission == LocationPermission.deniedForever) {
return null;
}
// Get current position
Position position = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.high,
timeLimit: const Duration(seconds: 5),
);
return LocationData(
latitude: double.parse(position.latitude.toStringAsFixed(3)),
longitude: double.parse(position.longitude.toStringAsFixed(3)),
);
} catch (e) {
return null;
}
}