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.