Come posso dividere il globo in piccole griglie in modo che mi consenta di assegnare ogni posizione lat / long a una griglia? [chiuso]

StackOverflow https://stackoverflow.com/questions/1824790

Domanda

Al fine di calcolare le posizioni più vicine rappresentate da latitudine / longitudine, stavo considerando di dividere la mappa in piccole griglie, circa 100x100 metri. In sostanza ogni punto verrebbe assegnato a una griglia.

Comprendo che potrei invece utilizzare anche indici spaziali con MySQL ecc., ma sto pianificando di utilizzare un database non relazionale come Cassandra in cui sarebbe difficile eseguire l'indicizzazione su oggetti spaziali e quindi un qualche tipo di tecnica di approssimazione della griglia potrebbe sii pulito.

Quale sarebbe il modo migliore per creare un tale sistema a griglia e mappare le posizioni spaziali 2D su di esso?

Modifica1: potrebbe andare bene se le griglie non sono perfettamente uniformi, tanto più attorno ai poli.

È stato utile?

Soluzione

Le griglie rettangolari possono essere una stima ragionevole, ma solo su un'area relativamente piccola che non è troppo vicina ai poli. Una soluzione globale richiede un approccio diverso.

Altri suggerimenti

La mappatura dalle coordinate spaziali bidimensionali al tuo indice spaziale / geohash è un problema interessante. Puoi consultare questo articolo su quadrifogli, geohash e curve di Hilbert . La curva di Hilbert è una curva di riempimento dello spazio che fornisce località; per i tuoi scopi, ciò significa che gli oggetti vicini nell'indice spaziale unidimensionale saranno vicini nello spazio bidimensionale.

L'obiettivo (come descritto da altri responder) è di ridurre al minimo il numero di query necessarie per coprire lo spazio in questione senza richiedere tonnellate di dati non necessari dal server. Il modo in cui esegui la mappatura dallo spazio 2-d a un indice 1-d influirà su tale obiettivo.

Senza conoscere i requisiti esatti dell'applicazione, Geohashing potrebbe essere una tecnica appropriata: http: //en.wikipedia. org / wiki / Geohash

" È una struttura gerarchica di dati spaziali che suddivide lo spazio in secchi di forma griglia. I geohash offrono proprietà come la precisione arbitraria e la possibilità di rimuovere gradualmente i caratteri dalla fine del codice per ridurne le dimensioni (e perdere gradualmente la precisione). & Quot;

scroll top