给定一个经纬度,都是google的格式,
如11.11111,22.22222
然后给定一个范围,如50米,然后得到经纬度在以给定经纬度为中心,给定范围内的记录,该如何做呢

解决方案 »

  1.   

    这个不是GIS里面的缓冲区查询么?
      

  2.   

    我不知道这个50米怎么计算哦……如果只是纯粹的经纬度查询,那都好办多了,加上这个计算公式,好像比较麻烦  还有,不知道你经纬度存贮的格式,如果是按照 主键  经度  维度 这样的表的话,你可以遍历表,然后与给定的数据进行比较查询eg select * from table where (两点之间距离计算公式)<50
      

  3.   


    declare @R float
    set @R = 6378.137;
    declare @lng float
    declare @lat float
    set @lng = 11.11111;
    set @lat = 22.22222;
    select * from gmap where @R*acos(cos(lng)*cos(@lng)*(lat-@lat)+sin(lng)*sin(@lng))*1000<=50--地球面2点间距离的公示
    R·arc cos[cosβ1cosβ2cos(α1-α2)+sinβ1sinβ2] 
      

  4.   

    set @R = 6378.137;
    这个数值是什么意思?
      

  5.   

    set @R = 6378.137;
    地球半径
      

  6.   


    我查到了,好像经纬度坐标必须为度,不能是google的这种格式