查询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,691 total views, 2 views today

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

  • 博主,问几个问题:

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

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注