<分区>
Possible Duplicate:
Radius of multiple latitude/longitude points
distance calculations in mysql queries
select within 20 kilometers based on latitude/longitude
我有一个 MyISAM 表,其中存储了数据。数据包括谷歌地图的纬度和经度。我想要实现的是选择样本经纬度40公里半径范围内的所有对象。
谢谢!
标签 php mysql google-maps
<分区>
Possible Duplicate:
Radius of multiple latitude/longitude points
distance calculations in mysql queries
select within 20 kilometers based on latitude/longitude
我有一个 MyISAM 表,其中存储了数据。数据包括谷歌地图的纬度和经度。我想要实现的是选择样本经纬度40公里半径范围内的所有对象。
谢谢!
最佳答案
我使用此查询来获取 $lat
/$lng
周围的 $radius
内的所有点:
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 (编辑:网址已更改)
关于php - 40公里半径使用经纬度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850336/