Ho alcuni oggetti che sono geo-localizzati (ho per ogni oggetto la latitudine + longitudine). La mia app deve visualizzare gli oggetti che si trovano a 3 chilometri attorno alla posizione GPS del dispositivo mobile. Ho diverse migliaia di oggetti e sono localizzati in un'ampia area (ad esempio, diversi stati degli Stati Uniti, diversi paesi piccoli), nel mio elenco di oggetti ne posso avere uno situato a New York e un altro a Miami, ma posso avere anche oggetti che sono molto vicini (pochi metri).come ordinare i dati geografici per la ricerca rapida
Attualmente, la mia app esegue una ricerca iterativa. Per ogni oggetto computo la distanza con la posizione GPS e se la distanza è < = 3KM, allora tengo l'oggetto che ignoro. Questo algoritmo non è molto efficiente e sto cercando un algoritmo che fornisca prestazioni migliori.
Suppongo che ci sia un modo per ordinare i miei oggetti usando il geo coord e accanto per trovare più velocemente gli oggetti che si trovano attorno alla posizione GPS.
La mia idea attuale è solo per calcolare il rettangolo con i "punti estremi", Nord/Sud/Est/Ovest (da 3 km della posizione GPS) per limitare la zona di ricerca. Quindi calcolerò la distanza solo per gli oggetti all'interno di questa casella. Penso qualcosa di meglio poteva essere fatto, ma non ho l'idea ...
Ogni proposta sarà apprezzato ;-) Grazie,
SEB.
Penso che un quadrifoglio direttamente in lat/lon funzioni per quasi tutti gli scenari. Se la longitudine è 0-360, la cambierei in modo che la "cucitura" nei dati sia sulla linea data anziché su zero (quindi tutti i problemi sarebbero solo al Polo Nord, Polo Sud e Pacifico) . –
Davvero grazie, studierò l'Octree e il kd-tree. Se non è troppo complesso per il mio cervello piccolo, probabilmente può fare qualcosa con esso! – sebastien