geolocation

 avatar
unknown
dart
a year ago
1.6 kB
7
Indexable
Future<bool> _isUserAtCafe() async {
    bool serviceEnabled;
    LocationPermission permission;

    // Memeriksa apakah layanan lokasi diaktifkan
    serviceEnabled = await Geolocator.isLocationServiceEnabled();
    if (!serviceEnabled) {
      // Layanan lokasi tidak diaktifkan, tidak dapat melanjutkan
      return false;
    }

    // Memeriksa izin lokasi
    permission = await Geolocator.checkPermission();
    if (permission == LocationPermission.denied) {
      permission = await Geolocator.requestPermission();
      if (permission == LocationPermission.denied) {
        // Izin lokasi ditolak, tidak dapat melanjutkan
        return false;
      }
    }

    if (permission == LocationPermission.deniedForever) {
      // Izin lokasi ditolak secara permanen, tidak dapat melanjutkan
      return false;
    }

    // Mendapatkan lokasi saat ini
    Position position = await Geolocator.getCurrentPosition();

    // Menghitung jarak dari kafe
    double distance = Geolocator.distanceBetween(
      position.latitude,
      position.longitude,
      cafeLatitude,
      cafeLongitude,
    );

    // Memeriksa apakah pengguna berada dalam radius yang diizinkan
    return distance <= allowedRadius;
  }

  void _handleOrder() async {
    bool isAtCafe = await _isUserAtCafe();
    if (isAtCafe) {
      // Pengguna berada di kafe, lanjutkan pemesanan
      print('Pemesanan berhasil');
    } else {
      // Pengguna tidak berada di kafe, tampilkan pesan kesalahan
      print('Anda harus berada di kafe untuk melakukan pemesanan');
    }
  }
Editor is loading...
Leave a Comment