sql – 选择落在中心点半径范围内的坐标?

前端之家收集整理的这篇文章主要介绍了sql – 选择落在中心点半径范围内的坐标?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个架构中的坐标数据库

ID:纬度:经度:名称:降序

我已经设置了我的谷歌地图应用程序,以在屏幕上有效地显示标记.但是我需要添加另一个功能,用户可以从中心点查看半径范围内的所有指针.

我该如何编写这种类型的sql语句:

Select all pointers that fall within a 10 mile radius of X & Y

解决方法

下面的sql应该工作:
SELECT * FROM Table1 a 
WHERE (
          acos(sin(a.Latitude * 0.0175) * sin(YOUR_LATITUDE_X * 0.0175) 
               + cos(a.Latitude * 0.0175) * cos(YOUR_LATITUDE_X * 0.0175) *    
                 cos((YOUR_LONGITUDE_Y * 0.0175) - (a.Longitude * 0.0175))
              ) * 3959 <= YOUR_RADIUS_INMILES
      )

这是基于余弦的球面定律,有关该主题的更多详细信息,请查看本文 – http://www.movable-type.co.uk/scripts/latlong.html

猜你在找的MsSQL相关文章