Ho due ArrayList, tipo di dati Double, 1.latitudes 2. longitudini, ciascuna ha oltre 200 elementiTrovare le coordinate più vicine in un array?
dicono i dare un casuale coordinate prova, dire (1.33, 103.4), il formato è [latitudine , longitudine]
c'è qualche algoritmo per trovare facilmente il punto più vicino, o devo forza bruta calcolare ogni punto possibile, trovare ipotenusa e quindi confrontare oltre 200 ipotenus per restituire il punto più vicino? grazie
Se fate calcolare tutti ipotenuse, è possibile calcolare la distanza e implementare min) la logica di distanza (il tutto in un loop. Inoltre, tutti i tuoi punti dovrebbero essere geograficamente vicini tra loro in modo da poter considerare quest'area un piano, altrimenti devi tenere in considerazione la curvatura della Terra. –
qual è la tua definizione di distanza?"ipotenusa" è un termine dalla geometria planare, ma il tuo uso di "longitudine" e "latitudine" sembra indicare che i punti sono sulla superficie di una sfera ... – meriton
Hai guardato R-trees (https: // it .wikipedia.org/wiki/R-tree)? O algoritmi di indicizzazione spaziale in generale (https://en.wikipedia.org/wiki/Spatial_index#Spatial_index)? –