Tôi sử dụng truy vấn này để lấy tất cả các điểm trong $radius
khoảng $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 là bán kính trái đất im km. Và tôi chưa phát minh ra nó: http:/ /code.google.com/intl/vi/apis/maps/articles/phpsqlsearch.html
https://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql (chỉnh sửa:URL đã thay đổi)