Vantaggi degli alberi R rispetto ai geohash


18

I geohash sono ampiamente utilizzati in prodotti come: lucene, mongodb, ecc. E sono diventati una delle tecnologie più importanti dei nostri giorni.

I Geohashes hanno sostituito i buoni vecchi R-alberi o gli R-alberi hanno qualche vantaggio rispetto ai Geohashes?

Risposte:


11

Geohash è un modo molto semplice ed efficace di indicizzare le caratteristiche spaziali, in particolare le caratteristiche dei punti. Le funzioni di linea e poligono sono leggermente più difficili da indicizzare, ma possono essere fatte. Geohash è una griglia statica gerarchica di dimensioni fisse, sovrapposta alla superficie terrestre. Le celle della griglia dello stesso livello gerarchico non si sovrappongono. R-Tree è una griglia dinamica la cui posizione e dimensione della cella cambiano in base alle caratteristiche che stanno indicizzando. Le caratteristiche degli indici R-Tree cambiano caselle e celle ogni volta che si inseriscono e si aggiornano i dati. Geohash viene utilizzato principalmente per le funzionalità dei punti di indicizzazione e le celle non cambiano ad ogni inserimento e aggiornamento dei dati. Le celle di Geohash non si adattano alle caratteristiche come con R-tree.

Alcuni dei vantaggi di geohash (rispetto a r-tree) potrebbero essere:

  • facile implementazione
  • nessuna riduzione delle prestazioni con un numero crescente di funzionalità
  • ricerche di prossimità (parzialmente vero)

Alcuni degli svantaggi di geohash (rispetto a r-tree) potrebbero essere:

  • precisione arbitraria della griglia
  • funzioni di linea e poligono più difficili da indicizzare (e interrogare)
  • la dimensione dell'indice potrebbe essere grande con alcuni metodi di indicizzazione di linee e poligoni
  • dalle specifiche, può essere utilizzato solo con il sistema di coordinate longitudine / latitudine, sebbene lo stesso metodo possa essere applicato anche ad altri sistemi di coordinate

Quei prodotti (database) che hai citato usano geohash perché geohash è usato principalmente per indicizzare i punti e ci sono molte applicazioni che richiedono tale funzionalità. Linee e poligoni non sono spesso utilizzati (tranne che per le applicazioni GIS ovviamente), quindi perché preoccuparsene. Altra ragione, ovviamente, è la facilità di implementazione. Geohash converte le coordinate bidimensionali in valore unidimensionale. Questo si chiama riduzione dimensionale. Il valore monodimensionale è facilmente indicizzabile dall'albero b standard che viene utilizzato principalmente in quei prodotti.

Devo dire che ci sono algoritmi simili al geohash ma la maggior parte sono proprietari e richiedono una licenza. Geohash è di dominio pubblico. Questo potrebbe anche essere il motivo di un così grande utilizzo negli ultimi anni.

Probabilmente ci sono altri vantaggi e svantaggi, ma questi sono i primi che mi vengono in mente. Spero che la mia spiegazione mi aiuti un po '.


non ho capito perché i geohash danno una precisione arbitraria della griglia. Puoi per favore spiegare con un esempio. Ti sarò grato per lo stesso.
Jannat Arora,

1
Geohash converte le coordinate di longitudine e latitudine nella stringa unidimensionale. La lunghezza di questa stringa è direttamente legata alla precisione convertita della coordinata. Si prega di guardare questo unterbahn.com/2009/11/… . Puoi vedere come la lunghezza di una stringa geohash è legata alla precisione. Fondamentalmente, il geohash converte il punto in un'area poligonale (una griglia geohash). La dimensione di questa area poligonale dipende dalla lunghezza della stringa geohash e dalla latitudine che stai calcolando il geohash.
Mario Miler,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.