Ad esempio, supponiamo che io abbia una tabella:
Business(BusinessID, Lattitude, Longitude)
Tutti sono indicizzati ovviamente. Inoltre ci sono 1 milione di record
Supponiamo di voler trovare aziende vicine a 106,5, ad esempio, come farei?
Se lo faccio
SELECT *
FROM Business
WHERE (Some formula to compute distance here) < 2000
per esempio, o se lo faccio
SELECT *
FROM Business
TOP 20
In teoria il computer dovrà calcolare la distanza per tutti i biz mentre in pratica solo quelli con latitudine e longitudine entro un certo intervallo che dovrebbero essere calcolati.
Quindi, come posso fare quello che voglio in PhP, o SQL, per esempio?
Sono grato per la risposta finora. Sto usando mysql e non hanno nulla di più efficiente della soluzione ovvia. MySQL spaziale non ha nemmeno la funzione di distanza di calcolo.