Minima distanza tra un punto e un elenco di punti
Chiedo un consiglio a chi, magari, è più fresco di studi scolastici .....
Ho un punto di coordinate (x,y) e una tabella che contiene un elenco di N punti, ognuno con la propria coordinata (x,y) ... voglio trovare il punto della tabella che ha DISTANZA MINIMA dal punto dato ...
Per il calcolo della distanza tra due punti non ho problemi, inoltre posso (volendo) esplorare la tabella ordinando i punti per x oppure per y (li estraggo con una query).
Io adesso, molto bovinamente, me li passo TUTTI e ogni volta che trovo una distanza più piccola di quella precedente la aggiorno (con la tecnica del pivot ..)
Sono certo, però, che sia un problemino noto e che abbia una soluzione un po' più elegante e veloce.
Qualche idea, per cortesia ?
Grazie
eKontar
Ho un punto di coordinate (x,y) e una tabella che contiene un elenco di N punti, ognuno con la propria coordinata (x,y) ... voglio trovare il punto della tabella che ha DISTANZA MINIMA dal punto dato ...
Per il calcolo della distanza tra due punti non ho problemi, inoltre posso (volendo) esplorare la tabella ordinando i punti per x oppure per y (li estraggo con una query).
Io adesso, molto bovinamente, me li passo TUTTI e ogni volta che trovo una distanza più piccola di quella precedente la aggiorno (con la tecnica del pivot ..)
Sono certo, però, che sia un problemino noto e che abbia una soluzione un po' più elegante e veloce.
Qualche idea, per cortesia ?
Grazie
eKontar
Risposte
Due domande:
1)Distanza in che senso? $d[(x_1, y_1); (x_2, y_2)]=sqrt((x_1-x_2)^2+(y_1-y_2)^2]$?
2)Che software stai usando?
Comunque, a naso mi sa che meglio di come fai tu non si può tanto fare. Ma non sono un esperto di algoritmi, anzi ad essere sincero ci capisco pochino.
1)Distanza in che senso? $d[(x_1, y_1); (x_2, y_2)]=sqrt((x_1-x_2)^2+(y_1-y_2)^2]$?
2)Che software stai usando?
Comunque, a naso mi sa che meglio di come fai tu non si può tanto fare. Ma non sono un esperto di algoritmi, anzi ad essere sincero ci capisco pochino.

ciao, grazie per la risposta...
la distanza e il software che uso, in realtà, sono ininfluenti ..
la distanza è quella tra una località (della quale conosco le coordinate GPS) e tra un insieme di località (con le relative LAT e LONG) quindi la formula di calcolo è un po' più .... sferica .... ma nota
quello che mi chiedo e se esiste un modo più intelligente di passarsi ogni volta tutte le coordinate (x,y) di tutte le località, calcolare la distanza e salvare ad ogni ciclo quella minima.
Anche a me, come a te, a naso ... mi sa che sia l'unica, però magari (spero) il problema è riconducibile a qualcosa di più generico con una soluzione più ottimizzata ....
eK
la distanza e il software che uso, in realtà, sono ininfluenti ..
la distanza è quella tra una località (della quale conosco le coordinate GPS) e tra un insieme di località (con le relative LAT e LONG) quindi la formula di calcolo è un po' più .... sferica .... ma nota
quello che mi chiedo e se esiste un modo più intelligente di passarsi ogni volta tutte le coordinate (x,y) di tutte le località, calcolare la distanza e salvare ad ogni ciclo quella minima.
Anche a me, come a te, a naso ... mi sa che sia l'unica, però magari (spero) il problema è riconducibile a qualcosa di più generico con una soluzione più ottimizzata ....
eK