Keuntungan R-tree dibandingkan dengan geohash

18

Geohash digunakan secara luas dalam produk-produk seperti: Lucene, mongodb, dll dan telah menjadi salah satu teknologi terpenting saat ini.

Apakah Geohash mengganti R-tree lama yang baik atau apakah R-tree memiliki kelebihan dibandingkan Geohash?

Jannat Arora
sumber

Jawaban:

11

Geohash adalah cara yang sangat sederhana dan efektif untuk mengindeks fitur spasial, terutama fitur titik. Fitur garis dan poligon sedikit lebih sulit untuk diindeks, tetapi dapat dilakukan. Geohash adalah kisi ukuran tetap hierarkis statis, yang dilapis di atas permukaan bumi. Sel kisi dengan tingkat hierarki yang sama tidak tumpang tindih. R-Tree adalah kisi dinamis yang lokasi dan ukuran selnya berubah tergantung pada fitur yang diindeks. Fitur indeks R-Tree terikat kotak dan sel berubah setiap kali Anda memasukkan dan memperbarui data. Geohash sebagian besar digunakan untuk fitur titik pengindeksan dan sel tidak berubah setiap kali memasukkan dan memperbarui data. Sel geohash tidak mengadopsi fitur seperti dengan R-tree.

Beberapa keuntungan geohash (dibandingkan dengan r-tree) dapat berupa:

  • implementasi mudah
  • tidak ada penurunan kinerja dengan semakin banyaknya fitur
  • pencarian kedekatan (sebagian benar)

Beberapa kelemahan geohash (dibandingkan dengan r-tree) adalah:

  • presisi grid sembarang
  • lebih sulit untuk mengindeks (dan permintaan) fitur garis dan poligon
  • ukuran indeks bisa besar dengan beberapa metode pengindeksan garis dan poligon
  • menurut spesifikasinya, hanya dapat digunakan dengan sistem koordinat bujur / lintang, meskipun metode yang sama dapat diterapkan pada sistem koordinat lain juga

Produk-produk (database) yang Anda sebutkan menggunakan geohash karena geohash terutama digunakan untuk poin pengindeksan dan ada banyak aplikasi yang membutuhkan fitur tersebut. Garis dan poligon tidak sering digunakan (kecuali untuk aplikasi GIS tentu saja), jadi mengapa repot-repot dengan itu. Alasan lainnya, tentu saja, kemudahan implementasi. Geohash mengubah koordinat dua dimensi menjadi nilai satu dimensi. Ini disebut reduksi dimensi. Nilai satu dimensi mudah diindeks oleh pohon-b standar yang sebagian besar digunakan dalam produk-produk tersebut.

Saya harus menyebutkan bahwa ada algoritma yang mirip dengan geohash tetapi kebanyakan dari mereka adalah milik dan memerlukan lisensi. Geohash ada dalam domain publik. Ini bisa juga menjadi alasan untuk penggunaan besar dalam beberapa tahun terakhir.

Mungkin ada beberapa kelebihan dan kekurangan lainnya, tetapi ini adalah yang pertama kali terlintas di pikiran saya. Saya harap penjelasan saya sedikit membantu.

Mario Miler
sumber
saya tidak mengerti mengapa geohash memberikan ketepatan grid sembarang. Bisakah Anda jelaskan dengan sebuah contoh. Saya akan berterima kasih kepada Anda untuk hal yang sama.
Jannat Arora
1
Geohash mengubah koordinat garis bujur dan garis bujur menjadi string satu dimensi. Panjang string ini terkait langsung dengan ketepatan koordinat yang dikonversi. Silakan lihat ini unterbahn.com/2009/11/… . Anda dapat melihat seberapa panjang string geohash diikat ke presisi. Pada dasarnya, geohash mengkonversi titik menjadi area poligon (satu grid geohash). Ukuran area poligon ini tergantung pada panjang string geohash dan lintang apa yang Anda hitung geohash.
Mario Miler