全部产品
Search
文档中心

Tair (Redis® OSS-Compatible):GIS

更新时间:Nov 10, 2025

TairGIS adalah struktur data yang menggunakan indeks R-tree dan mendukung API terkait Sistem Informasi Geografis (SIG). Berbeda dengan perintah Redis GEO asli yang memanfaatkan GeoHash dan Sorted Set Redis untuk mengkueri titik, TairGIS menawarkan fitur yang lebih lengkap dengan mendukung kueri titik, linestring, dan poligon.

Fitur

  • Menggunakan indeks R-tree untuk kueri dan penyimpanan.

  • Mendukung kueri linestring dan poligon, termasuk kueri irisan himpunan.

  • Menyediakan perintah GIS.SEARCH, yang memiliki fungsi serupa dengan perintah GEORADIUS Redis asli.

Modul ini bersifat open-source. Untuk informasi selengkapnya, lihat TairGIS.

Praktik terbaik

Prasyarat

Instans Tair berbasis DRAM telah dibuat.

Catatan

Versi minor terbaru menyediakan lebih banyak fitur dan stabilitas yang lebih tinggi. Kami menyarankan Anda memperbarui instans ke versi minor terbaru. Untuk informasi selengkapnya, lihat Perbarui versi minor instans. Jika instans Anda merupakan instans cluster atau pemisahan baca/tulis, kami menyarankan Anda memperbarui node proxy dalam instans ke versi minor terbaru agar semua perintah dapat dijalankan sebagaimana mestinya.

Catatan penggunaan

Data TairGIS yang ingin Anda kelola disimpan pada instans Tair.

Perintah yang didukung

Tabel 1. Perintah TairGIS

Perintah

Sintaks

Deskripsi

GIS.ADD

GIS.ADD area polygonName polygonWkt [polygonName polygonWkt ...]

Menambahkan satu atau beberapa poligon ke suatu area. Poligon tersebut dijelaskan dalam teks terkenal (WKT).

Catatan

WKT adalah bahasa markup teks untuk merepresentasikan objek geometri vektor pada peta, sistem referensi spasial objek spasial, dan transformasi antar sistem referensi spasial.

GIS.GET

GIS.GET area polygonName

Mengambil representasi WKT dari sebuah poligon dalam suatu area.

GIS.GETALL

GIS.GETALL area [WITHOUTWKT]

Mengambil nama dan representasi WKT dari semua poligon dalam sebuah area. Jika Anda menentukan parameter WITHOUTWKT, hanya nama-nama poligon yang dikembalikan.

GIS.CONTAINS

GIS.CONTAINS area polygonWkt [WITHOUTWKT]

Memeriksa apakah suatu titik, linestring, atau poligon berada di dalam poligon-poligon yang terletak pada area tertentu. Jika ya, perintah ini mengembalikan jumlah dan representasi WKT dari poligon-poligon yang memuat titik, linestring, atau poligon tersebut di area tersebut.

GIS.WITHIN

GIS.WITHIN area polygonWkt [WITHOUTWKT]

Memeriksa apakah suatu area berada di dalam sebuah titik, linestring, atau poligon. Jika ya, perintah ini mengembalikan jumlah dan representasi WKT dari poligon dalam area tersebut yang berada di dalam titik, linestring, atau poligon tersebut.

GIS.INTERSECTS

GIS.INTERSECTS area polygonWkt

Memeriksa apakah suatu titik, linestring, atau poligon berpotongan dengan poligon-poligon dalam area tertentu. Jika ya, perintah ini mengembalikan jumlah dan representasi WKT dari poligon-poligon dalam area tersebut yang berpotongan dengan titik, linestring, atau poligon tersebut.

GIS.SEARCH

GIS.SEARCH area [RADIUS longitude latitude distance M|KM|FT|MI] [MEMBER bidang distance M|KM|FT|MI] [GEOM geom] [COUNT count] [ASC|DESC] [WITHDIST] [WITHOUTWKT]

Menanyakan titik-titik dalam suatu area yang berada dalam radius tertentu dari posisi garis bujur dan garis lintang spesifik.

GIS.DEL

GIS.DEL area polygonName

Menghapus poligon tertentu dari suatu area.

DEL

DEL key [key ...]

Menghapus satu atau beberapa kunci TairGIS. Ini adalah perintah Redis asli.

Catatan

Daftar berikut menjelaskan konvensi sintaks perintah yang digunakan dalam topik ini:

  • Kata kunci huruf kapital: menunjukkan kata kunci perintah.

  • Teks miring: menunjukkan variabel.

  • [opsi]: menunjukkan bahwa parameter yang diapit tanda kurung siku bersifat opsional. Parameter yang tidak diapit tanda kurung siku wajib ditentukan.

  • A|B: menunjukkan bahwa parameter yang dipisahkan oleh tanda vertikal (|) saling eksklusif. Hanya satu parameter yang dapat ditentukan.

  • ...: menunjukkan bahwa parameter sebelum simbol ini dapat diulang berkali-kali.

GIS.ADD

Item

Deskripsi

Sintaks

GIS.ADD area polygonName polygonWkt [polygonName polygonWkt ...]

Kompleksitas waktu

O(log n)

Deskripsi perintah

Menambahkan satu atau beberapa poligon ke suatu area. Poligon tersebut dijelaskan dalam teks terkenal (WKT).

Catatan

WKT adalah bahasa markup teks untuk merepresentasikan objek geometri vektor pada peta, sistem referensi spasial objek spasial, dan transformasi antar sistem referensi spasial.

Parameter

  • area: konsep geometris.

  • PolygonName: nama poligon yang ingin Anda kelola.

  • polygonWkt: deskripsi poligon yang ditulis dalam WKT. Deskripsi ini mencakup bujur dan lintang. Jenis poligon berikut dapat dijelaskan dalam WKT:

    • POINT: WKT yang menggambarkan suatu titik. Contoh: 'POINT (120.086631 30.138141)'. Nilai ini menunjukkan bahwa titik tersebut berada pada bujur 120.086631 dan lintang 30.138141.

    • LINESTRING: WKT yang menggambarkan linestring. Linestring terdiri dari dua titik. Contoh: 'LINESTRING (30 10, 40 40)'.

    • POLYGON: WKT yang menggambarkan poligon. Poligon terdiri dari beberapa titik. Contoh: 'POLYGON ((31 20, 29 20, 29 21, 31 31))'.

    Catatan
    • Nilai bujur yang valid berkisar antara -180 hingga 180, dan nilai lintang yang valid berkisar antara -90 hingga 90.

    • Jenis koleksi MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRY, dan COLLECTION tidak didukung.

Keluaran

  • Jika operasi berhasil, jumlah poligon yang telah ditambahkan dan diperbarui dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Perintah contoh:

GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'

Keluaran contoh:

(integer) 1

GIS.GET

Item

Deskripsi

Sintaks

GIS.GET area polygonName

Kompleksitas waktu

O(1)

Deskripsi perintah

Mengambil representasi WKT dari sebuah poligon dalam suatu area.

Parameter

  • area: konsep geometris.

  • PolygonName: nama poligon yang ingin Anda kelola.

Keluaran

  • Jika operasi berhasil, representasi WKT dari poligon dikembalikan.

  • Jika area atau poligon tidak ada, nil dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))' terlebih dahulu.

Perintah contoh:

GIS.GET hangzhou campus

Keluaran contoh:

'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))'

GIS.GETALL

Item

Deskripsi

Sintaks

GIS.GETALL area [WITHOUTWKT]

Kompleksitas waktu

O(n)

Deskripsi perintah

Mengambil nama dan representasi WKT dari semua poligon dalam suatu area. Jika Anda menentukan parameter WITHOUTWKT, hanya nama poligon yang dikembalikan.

Parameter

  • area: konsep geometris.

  • WITHOUTWKT: menentukan apakah representasi WKT poligon dikembalikan. Jika parameter ini ditentukan, representasi WKT poligon tidak dikembalikan.

Keluaran

  • Jika operasi berhasil, nama dan representasi WKT poligon dikembalikan. Jika parameter WITHOUTWKT ditentukan, hanya nama poligon yang dikembalikan.

  • Jika area tidak ada, nil dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))' terlebih dahulu.

Perintah contoh:

GIS.GETALL hangzhou

Keluaran contoh:

1) "campus"
2) "POLYGON((30 10,40 40,20 40,10 20,30 10))"

GIS.CONTAINS

Item

Deskripsi

Sintaks

GIS.CONTAINS area polygonWkt [WITHOUTWKT]

Kompleksitas waktu

  • Kompleksitas waktu optimal: log公式

  • Kompleksitas waktu paling tidak diinginkan: O(log n)

Deskripsi perintah

Memeriksa apakah suatu titik, linestring, atau poligon berada di dalam poligon-poligon dalam area tertentu. Jika ya, perintah ini mengembalikan jumlah dan representasi WKT dari poligon yang memuat titik, linestring, atau poligon tersebut dalam area tersebut.

Parameter

  • area: konsep geometris.

  • polygonWkt: deskripsi poligon yang ditulis dalam WKT. Jenis poligon berikut dapat dijelaskan dalam WKT:

    • POINT: WKT yang menggambarkan suatu titik.

    • LINESTRING: WKT yang menggambarkan linestring.

    • POLYGON: WKT yang menggambarkan poligon.

  • WITHOUTWKT: menentukan apakah representasi WKT poligon dikembalikan. Jika parameter ini ditentukan, representasi WKT poligon tidak dikembalikan.

Keluaran

  • Jika operasi berhasil, jumlah dan representasi WKT poligon dikembalikan.

  • Jika area tidak ada, pesan "empty list or set" dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))' terlebih dahulu.

Perintah contoh:

GIS.CONTAINS hangzhou 'POINT (30 11)'

Keluaran contoh:

1) "1"
2) 1) "campus"
   2) "POLYGON((30 10,40 40,20 40,10 20,30 10))"

GIS.WITHIN

Item

Deskripsi

Sintaks

GIS.WITHIN area polygonWkt [WITHOUTWKT]

Kompleksitas waktu

  • Kompleksitas waktu optimal: log公式

  • Kompleksitas waktu paling tidak diinginkan: O(log n)

Deskripsi perintah

Memeriksa apakah suatu area berada di dalam suatu titik, linestring, atau poligon. Jika ya, perintah ini mengembalikan jumlah dan representasi WKT dari poligon dalam area tersebut yang berada di dalam titik, linestring, atau poligon tersebut.

Parameter

  • area: konsep geometris.

  • polygonWkt: deskripsi poligon yang ditulis dalam WKT. Jenis poligon berikut dapat dijelaskan dalam WKT:

    • POINT: WKT yang menggambarkan suatu titik.

    • LINESTRING: WKT yang menggambarkan linestring.

    • POLYGON: WKT yang menggambarkan poligon.

    Catatan

    MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRY, dan COLLECTION tidak didukung.

  • WITHOUTWKT: menentukan apakah representasi WKT poligon dikembalikan. Jika parameter ini ditentukan, representasi WKT poligon tidak dikembalikan.

Keluaran

  • Jika operasi berhasil, jumlah dan representasi WKT poligon dikembalikan.

  • Jika area tidak ada, pesan "empty list or set" dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))' terlebih dahulu.

Perintah contoh:

 GIS.WITHIN hangzhou  'POLYGON ((30 5, 50 50, 20 50, 5 20, 30 5))'

Keluaran contoh:

1) "1"
2) 1) "campus"
   2) "POLYGON((30 10,40 40,20 40,10 20,30 10))"

GIS.INTERSECTS

Item

Deskripsi

Sintaks

GIS.INTERSECTS area polygonWkt

Kompleksitas waktu

  • Kompleksitas waktu optimal: log公式

  • Kompleksitas waktu paling tidak diinginkan: O(log n)

Deskripsi perintah

Memeriksa apakah suatu titik, linestring, atau poligon berpotongan dengan poligon-poligon dalam area tertentu. Jika ya, perintah ini mengembalikan jumlah dan representasi WKT dari poligon dalam area tersebut yang berpotongan dengan titik, linestring, atau poligon tersebut.

Parameter

  • area: konsep geometris.

  • polygonWkt: deskripsi poligon yang ditulis dalam WKT. Jenis poligon berikut dapat dijelaskan dalam WKT:

    • POINT: WKT yang menggambarkan suatu titik.

    • LINESTRING: WKT yang menggambarkan linestring.

    • POLYGON: WKT yang menggambarkan poligon.

  • WITHOUTWKT: menentukan apakah representasi WKT poligon dikembalikan. Jika parameter ini ditentukan, representasi WKT poligon tidak dikembalikan.

Keluaran

  • Jika operasi berhasil, jumlah dan representasi WKT poligon dikembalikan.

  • Jika area tidak ada, pesan "empty list or set" dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))' terlebih dahulu.

Perintah contoh:

 GIS.INTERSECTS hangzhou 'LINESTRING (30 10, 40 40)'

Keluaran contoh:

1) "1"
2) 1) "campus"
   2) "POLYGON((30 10,40 40,20 40,10 20,30 10))"

GIS.SEARCH

Item

Deskripsi

Sintaks

GIS.SEARCH area [RADIUS longitude latitude distance M|KM|FT|MI]
[MEMBER field distance M|KM|FT|MI]
[GEOM geom]
[COUNT count]
[ASC|DESC]
[WITHDIST]
[WITHOUTWKT]

Kompleksitas waktu

  • Kompleksitas waktu optimal: log公式

  • Kompleksitas waktu paling tidak diinginkan: O(log n)

Deskripsi perintah

Mengkueri titik-titik dalam suatu area yang berada dalam radius tertentu dari posisi bujur dan lintang tertentu.

Opsi

  • area: konsep geometris.

  • RADIUS: bujur, lintang, radius, dan satuan radius. Nilai yang valid untuk satuan: M (meter), KM (kilometer), FT (kaki), dan MI (mil). Contoh: RADIUS 15 37 200 KM.

  • MEMBER: titik dalam area yang digunakan sebagai titik dasar dan radius untuk titik tersebut. Nilai harus disediakan dalam urutan berikut: nama poligon (field), radius pencarian (distance), dan satuan radius. Nilai yang valid untuk satuan radius: M (meter), KM (kilometer), FT (kaki), dan MI (mil). Contoh: MEMBER Agrigento 100 KM.

  • GEOM: poligon yang ditulis dalam WKT yang menentukan jangkauan pencarian. Contoh: GEOM 'POLYGON((10 30,20 30,20 40,10 40))'.

  • COUNT: jumlah maksimum entri yang dapat dikembalikan. Contoh: COUNT 3.

  • ASC|DESC: urutan peringkat entri yang dikembalikan. ASC menunjukkan bahwa entri yang dikembalikan diurutkan dari jarak terdekat ke terjauh dari pusat. DESC menunjukkan bahwa entri yang dikembalikan diurutkan dari jarak terjauh ke terdekat dari pusat.

  • WITHDIST: menentukan apakah jarak antara titik tertentu dan titik yang ditentukan oleh parameter MEMBER dikembalikan.

  • WITHOUTWKT: menentukan apakah representasi WKT titik dikembalikan. Jika parameter ini ditentukan, representasi WKT titik tidak dikembalikan.

Catatan

Anda hanya dapat menentukan salah satu dari parameter RADIUS, MEMBER, dan GEOM.

Keluaran

  • Jika operasi berhasil, jumlah dan representasi WKT titik dikembalikan.

  • Jika area tidak ada, pesan "empty list or set" dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah GIS.ADD Sicily "Palermo" "POINT (13.361389 38.115556)" "Catania" "POINT(15.087269 37.502669)" terlebih dahulu.

Perintah contoh:

GIS.SEARCH Sicily RADIUS 15 37 200 km WITHDIST ASC

Keluaran contoh:

1) (integer) 2
2) 1) "Catania"
   2) "POINT(15.087269 37.502669)"
   3) "56.4413"
   4) "Palermo"
   5) "POINT(13.361389 38.115556)"
   6) "190.4424"

GIS.DEL

Item

Deskripsi

Sintaks

GIS.DEL area polygonName

Kompleksitas waktu

O(log n)

Deskripsi perintah

Menghapus poligon tertentu dari suatu area.

Parameter

  • area: konsep geometris.

  • PolygonName: nama poligon yang ingin Anda kelola.

Keluaran

  • Jika operasi berhasil, OK dikembalikan.

  • Jika area atau poligon tidak ada, nil dikembalikan.

  • Jika tidak, pesan kesalahan dikembalikan.

Contoh

Jalankan perintah GIS.ADD hangzhou campus 'POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))' terlebih dahulu.

Perintah contoh:

GIS.DEL hangzhou campus

Keluaran contoh:

OK