determinePosition method

Future<Position?> determinePosition()

Implementation

Future<Position?> determinePosition() async {
  bool serviceEnabled;
  LocationPermission permission;
  serviceEnabled = await Geolocator.isLocationServiceEnabled()
      .onError((error, stackTrace) {
    return false;
  }).catchError((s) {
    return null;
  });
  // print("locationServis are ${serviceEnabled}");

  if (!serviceEnabled) {
    print("locationServis are disable");
    return null;
  }

  permission = await Geolocator.checkPermission().catchError((s) {
    print("error permission");
    return null;
  });
  if (permission == LocationPermission.denied) {
    permission = await Geolocator.requestPermission();
    if (permission == LocationPermission.denied) {
      print("locationServis are permissions denied");

      return null;
    }
  }

  if (permission == LocationPermission.deniedForever) {
    print("locationServis are permanently");

    return null;
  }

  Position position2 = await Geolocator.getCurrentPosition(
    desiredAccuracy: LocationAccuracy.best,
    // forceAndroidLocationManager: true,
    // timeLimit: const Duration(seconds: 1)
  );

  return position2;
}