使用纬度和经度的半径为40公里

时间:2012-01-13 12:07:35

标签: php mysql google-maps

  

可能重复:
  Radius of multiple latitude/longitude points
  distance calculations in mysql queries
  select within 20 kilometers based on latitude/longitude

我有一个MyISAM表,数据存储在其中。数据包括谷歌地图的纬度和经度。我想要实现的是选择样本纬度和经度40公里范围内的所有物体。

谢谢!

1 个答案:

答案 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(编辑:网址已更改)