Du bør søge efter Haversine-formlen, men en god start kunne være:
- Oprettelse af en butiksfinder med PHP, MySQL og Google Maps - Se afsnittet 'Sådan finder du placeringer med MySQL'
- Geo/Spatial Search med MySQL
Citerer fra den første url:
Her er SQL-sætningen, der finder de nærmeste 20 lokationer, der er inden for en radius af 25 miles til 37, -122 koordinaten. Den beregner afstanden baseret på den pågældende rækkes bredde/længdegrad og målbredde/længdegrad, og beder derefter kun om rækker, hvor afstandsværdien er mindre end 25, sorterer hele forespørgslen efter afstand og begrænser den til 20 resultater. Hvis du vil søge efter kilometer i stedet for miles, skal du erstatte 3959 med 6371.
SELECT
id,
( 3959
* acos( cos( radians(37) )
* cos( radians( lat ) )
* cos( radians( lng ) - radians(-122) )
+ sin( radians(37) )
* sin( radians( lat ) )
)
)
AS distance
FROM markers
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20;