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

相关文章

本篇内容主要讲解“sqlalchemy的常用数据类型怎么使用”,感...
今天小编给大家分享一下sqlServer实现分页查询的方式有哪些的...
这篇文章主要介绍“sqlmap之osshell怎么使用”,在日常操作中...
本篇内容介绍了“SQL注入的知识点有哪些”的有关知识,在实际...
1. mssql权限sa权限:数据库操作,文件管理,命令执行,注册...
sql执行计划如何查看?在SPL庞大的数据中我们不知道如何查看...