All Products
Search
Document Center

Tair (Redis® OSS-Compatible):Implementasi geofencing menggunakan TairGIS

Last Updated:Mar 28, 2026

TairGIS adalah struktur data geospasial dalam Tair (Enterprise Edition) yang menyimpan dan mengkueri bentuk geografis—titik, garis, dan poligon. TairGIS menawarkan kinerja tinggi dalam skenario konkurensi tinggi, sehingga cocok untuk aplikasi layanan berbasis lokasi (LBS) real-time seperti geofencing. Topik ini menjelaskan cara menggunakan TairGIS untuk membangun geofence.

Cara kerja

Geofence adalah batas virtual di sekitar area geografis. TairGIS menggunakan WKT (Well-Known Text), standar terbuka untuk merepresentasikan bentuk geometris sebagai string teks, guna mendefinisikan dan mengkueri batas tersebut.

TairGIS mendukung tiga tipe geometri WKT yang relevan dengan geofencing:

GeometryWKT formatKapan digunakan
PointPOINT (longitude latitude)Lokasi perangkat dari GPS
PolygonPOLYGON ((x1 y1, x2 y2, ...))Batas geofence atau area cakupan stasiun base
LineLINESTRING (x1 y1, x2 y2)Rute atau jalur

Alur kerja inti geofencing:

  1. Definisikan batas geofence dengan GIS.ADD menggunakan poligon WKT.

  2. Ambil lokasi perangkat saat ini sebagai titik atau poligon WKT.

  3. Jalankan GIS.CONTAINS untuk memeriksa apakah lokasi tersebut berada di dalam geofence.

  4. Bandingkan hasil pemeriksaan berturut-turut untuk mendeteksi event masuk dan keluar, lalu picu notifikasi.

Siapkan geofence

Langkah 1: Tambahkan batas geofence

Gunakan GIS.ADD untuk menyimpan area geografis di bawah kunci bernama. Contoh berikut menambahkan batas sekolah sebagai poligon:

GIS.ADD test_app school_location 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'

Langkah 2: Periksa apakah perangkat berada di dalam geofence

Bergantung pada cara Anda memperoleh lokasi perangkat, gunakan salah satu metode berikut.

Lokasi berbasis GPS (titik)

GPS mengembalikan koordinat yang presisi. Masukkan koordinat tersebut sebagai POINT WKT ke GIS.CONTAINS:

GIS.CONTAINS test_app 'POINT (40.086631 30.138141)'

GIS.CONTAINS mengembalikan nama semua geometri yang tersimpan yang memuat bentuk yang diberikan. Jika titik tersebut berada di luar semua geometri yang tersimpan, responsnya berupa array kosong.

Lokasi berbasis penyedia layanan (poligon)

Saat menggunakan data operator telekomunikasi, lokasi yang dilaporkan mungkin berupa sektor atau seluruh area cakupan stasiun base, bukan titik presisi. Representasikan area cakupan ini sebagai POLYGON WKT:

GIS.CONTAINS test_app 'POLYGON ((10 22, 30 45, 16 53, 10 22))'

Jika poligon cakupan tersebut beririsan dengan school_location, responsnya mencakup school_location, yang menunjukkan bahwa perangkat berada di dalam atau dekat geofence.

Langkah 3: Deteksi event masuk dan keluar

GIS.CONTAINS mengembalikan snapshot status saat ini. Panggil secara berulang dengan interval tetap dan bandingkan hasil berturut-turut untuk mendeteksi perubahan status:

Hasil sebelumnyaHasil saat iniEventTindakan
school_locationarray kosongPerangkat keluar dari geofencePicu notifikasi keluar
array kosongschool_locationPerangkat masuk ke geofencePicu notifikasi masuk

Sebagai contoh, dalam aplikasi keamanan sekolah, polling lokasi siswa dengan interval tetap. Ketika GIS.CONTAINS berubah dari mengembalikan school_location menjadi array kosong selama jam pemantauan, picu notifikasi keluar.

Anda juga dapat menjalankan perintah GIS.WITHIN dan GIS.INTERSECTS untuk memeriksa apakah perangkat berada di dalam pagar digital. Untuk referensi lengkap perintah, lihat TairGIS commands.

Langkah berikutnya