首页 > 编程学习 > SQL语句:查询1公里范围内经纬度数据
2012五月16

SQL语句:查询1公里范围内经纬度数据

查询1公里范围内的经纬度数据:

select 6371.012 *
       acos(cos(acos(-1) / 180 * d.LATITUDE) *
            cos(acos(-1) / 180 * 31.885972440801) *
            cos(acos(-1) / 180 * d.LONGITUDE - acos(-1) / 180 * 117.30923429642) +
            sin(acos(-1) / 180 * d.LATITUDE) *
            sin(acos(-1) / 180 * 31.885972440801))*1 as a,
       id,name 
  from loc_data d
 where 6371.012 *
       acos(cos(acos(-1) / 180 * d.LATITUDE) *
            cos(acos(-1) / 180 * 31.885972440801) *
            cos(acos(-1) / 180 * d.LONGITUDE - acos(-1) / 180 * 117.30923429642) +
            sin(acos(-1) / 180 * d.LATITUDE) *
            sin(acos(-1) / 180 * 31.885972440801))*1 < 1 order by a asc

1,614 total views, 2 views today

本文地址:https://blog.wizzer.cn/archives/2254 , 转载请保留.

One Response to “SQL语句:查询1公里范围内经纬度数据”

  1. #1 海盗窝 回复 | 引用 Post:2015-01-04 14:16

    博主,问几个问题:

    1、-1指的是什么?
    2、31.885972440801是什么数据?
    3、117.30923429642是什么数据?
    4、6371.012是什么数据?
    5、为啥要乘以180???

    我的数学好差劲,不要笑我。

    最近我也在做“附近的商店”功能,好烦,没接触过这方面的东西。

发表评论