Vorteile von R-Bäumen im Vergleich zu Geohashes


18

Geohashes werden häufig in Produkten wie Lucene, Mongodb usw. verwendet und sind zu einer der wichtigsten Technologien der Gegenwart geworden.

Haben Geohashes die guten alten R-Bäume ersetzt oder haben R-Bäume irgendwelche Vorteile gegenüber Geohashes?

Antworten:


11

Geohash ist eine sehr einfache und effektive Methode zur Indizierung von räumlichen Merkmalen, insbesondere von Punktmerkmalen. Linien- und Polygon-Features sind etwas schwieriger zu indizieren, können jedoch ausgeführt werden. Geohash ist ein statisches hierarchisches Gitter mit fester Größe, das über der Erdoberfläche liegt. Gitterzellen derselben Hierarchieebene überlappen sich nicht. R-Tree ist ein dynamisches Raster, dessen Position und Größe sich in Abhängigkeit von den zu indizierenden Features ändern. Die Begrenzungsrahmen und Zellen der R-Tree-Indexe ändern sich jedes Mal, wenn Sie Daten einfügen und aktualisieren. Geohash wird hauptsächlich für die Indizierung von Punkt-Features verwendet und Zellen ändern sich nicht bei jedem Einfügen und Aktualisieren von Daten. Geohash-Zellen übernehmen nicht die Funktionen wie bei R-Tree.

Einige der Vorteile von Geohash (im Vergleich zu R-Tree) könnten sein:

  • einfache Implementierung
  • Keine Leistungseinbußen bei wachsender Anzahl von Funktionen
  • Umgebungssuche (teilweise wahr)

Einige der Nachteile von Geohash (im Vergleich zu R-Tree) könnten sein:

  • willkürliche Genauigkeit des Gitters
  • Es ist schwieriger, Linien- und Polygon-Features zu indizieren (und abzufragen)
  • Bei einigen Indizierungsmethoden für Linien und Polygone kann der Index sehr groß sein
  • Gemäß den Spezifikationen kann es nur mit Längen- / Breitengrad-Koordinatensystemen verwendet werden, obwohl das gleiche Verfahren auch auf andere Koordinatensysteme angewendet werden könnte

Die von Ihnen erwähnten Produkte (Datenbanken) verwenden Geohash, da Geohash hauptsächlich zum Indizieren von Punkten verwendet wird und es viele Anwendungen gibt, die eine solche Funktion benötigen. Linien und Polygone werden nicht so häufig verwendet (mit Ausnahme der GIS-Anwendungen natürlich). Warum also? Ein weiterer Grund ist natürlich die einfache Implementierung. Geohash konvertiert zweidimensionale Koordinaten in eindimensionale Werte. Dies nennt man Dimensionsreduktion. Der eindimensionale Wert kann leicht durch einen Standard-B-Baum indiziert werden, der in diesen Produkten am häufigsten verwendet wird.

Ich muss erwähnen, dass es ähnliche Algorithmen wie Geohash gibt, die meisten jedoch proprietär sind und eine Lizenz erfordern. Geohash ist gemeinfrei. Dies könnte auch der Grund für eine derart große Nutzung in den letzten Jahren sein.

Es gibt wahrscheinlich einige andere Vor- und Nachteile, die mir jedoch zuerst einfallen. Ich hoffe meine Erklärung hilft ein bisschen.


Ich habe nicht verstanden, warum Geohashes eine willkürliche Genauigkeit des Gitters ergeben. Kannst du das bitte an einem Beispiel erklären. Ich werde Ihnen dafür dankbar sein.
Jannat Arora

1
Geohash wandelt Längen- und Breitengradkoordinaten in eindimensionale Zeichenfolgen um. Die Länge dieser Zeichenfolge ist direkt an die konvertierte Genauigkeit der Koordinate gebunden. Bitte schauen Sie hierzu unterbahn.com/2009/11/… . Sie können sehen, wie die Länge eines Geohash-Strings von der Genauigkeit abhängt. Grundsätzlich konvertiert Geohash Punkte in eine Polygonfläche (ein Geohash-Gitter). Die Größe dieses Polygonbereichs hängt von der Länge der Geohash-Zeichenfolge und dem Breitengrad ab, den Sie für die Geohash berechnen.
Mario Miler
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.