Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Raio de 40 quilômetros usando latitude e longitude


Eu uso esta consulta para obter todos os pontos dentro de um $radius em torno de $lat /$lng :
SELECT
    *,
    ( 6371 * acos( cos( radians({$lat}) ) * cos( radians( `lat` ) ) * cos( radians( `lng` ) - radians({$lng}) ) + sin( radians({$lat}) ) * sin( radians( `lat` ) ) ) ) AS distance
FROM `positions`
HAVING distance <= {$radius}
ORDER BY distance ASC

6371 é o raio da Terra em km. E eu não inventei isso:http:/ /code.google.com/intl/en/apis/maps/articles/phpsqlsearch.html https://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql (editar:URL alterado)