可能重复:
Radius of multiple latitude/longitude points
distance calculations in mysql queries
select within 20 kilometers based on latitude/longitude
我有一个MyISAM表,数据存储在其中。数据包括谷歌地图的纬度和经度。我想要实现的是选择样本纬度和经度40公里范围内的所有物体。
谢谢!
答案 0 :(得分:40)
我使用此查询获取$radius
/ $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是地球半径im km。而我还没有发明它: <击> http://code.google.com/intl/en/apis/maps/articles/phpsqlsearch.html 击> https://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql(编辑:网址已更改)