Geofencing
Trigger event otomatis saat user masuk atau keluar area geografis.
Geofencing menggunakan GPS device untuk mendeteksi saat user masuk atau keluar area virtual tertentu (radius dalam meter). expo-location mendukung geofencing via startGeofencingAsync dengan array region (identifier, latitude, longitude, radius, notifyOnEnter, notifyOnExit). TaskManager digunakan untuk mendefinisikan background handler yang menerima event enter/exit. Batasan: iOS maksimum 20 regions, radius minimum ~100m. Android maksimum 100 regions. Tidak real-time — ada delay beberapa detik hingga menit. Baterai relatif efisien karena OS yang monitor, bukan app polling. Use cases: check-in otomatis di kantor, reminder saat dekat toko, home automation, delivery tracking.
Contoh Kode
import * as Location from "expo-location";
import * as TaskManager from "expo-task-manager";
TaskManager.defineTask("geofence", ({ data }) => {
const { eventType, region } = data;
console.log(`${eventType} region ${region.identifier}`);
});
await Location.startGeofencingAsync("geofence", [{
identifier: "kantor",
latitude: -6.2,
longitude: 106.8,
radius: 200,
notifyOnEnter: true,
}]);