geolocation
unknown
dart
2 years ago
1.6 kB
11
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