import 'package:geolocator/geolocator.dart'; class GeoLocation { Future getCurrentLocation() async { bool serviceEnabled; LocationPermission permission; // Check if location services are enabled. serviceEnabled = await Geolocator.isLocationServiceEnabled(); if (!serviceEnabled) { // Location services are not enabled, so we request the user to enable it. return Future.error('Location services are disabled.'); } permission = await Geolocator.checkPermission(); if (permission == LocationPermission.denied) { permission = await Geolocator.requestPermission(); if (permission == LocationPermission.denied) { // Permissions are denied, we cannot fetch the location. return Future.error('Location permissions are denied'); } } if (permission == LocationPermission.deniedForever) { // Permissions are denied forever, we cannot request permissions. return Future.error( 'Location permissions are permanently denied, we cannot request permissions.'); } // When we reach here, permissions are granted and we can fetch the location. return await Geolocator.getCurrentPosition( desiredAccuracy: LocationAccuracy.high); } }