getLocation static method
Implementation
static Future<Map<String, String>> getLocation() async {
try {
bool serviceEnabled = await Geolocator.isLocationServiceEnabled();
if (!serviceEnabled) {
doPrint('Location services are disabled.');
return {'latitude': '0.0', 'longitude': '0.0'};
}
LocationPermission permission = await Geolocator.checkPermission();
if (permission == LocationPermission.denied) {
doPrint('Requesting location permission...');
permission = await Geolocator.requestPermission();
if (permission == LocationPermission.denied) {
doPrint('Location permission denied.');
return {'latitude': '0.0', 'longitude': '0.0'};
}
}
if (permission == LocationPermission.deniedForever) {
doPrint('Location permissions are permanently denied.');
return {'latitude': '0.0', 'longitude': '0.0'};
}
doPrint('Fetching current position...');
Position position = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.low,
timeLimit: const Duration(seconds: 5),
);
doPrint(
'Location found: ${position.latitude}, ${position.longitude}',
);
return {
'latitude': position.latitude.toString(),
'longitude': position.longitude.toString(),
};
} catch (e) {
doPrint('Error getting location $e');
return {'latitude': '0.0', 'longitude': '0.0'};
}
}