1. 程式人生 > >SQL 查詢表中所有經緯度在一公里內的記錄

SQL 查詢表中所有經緯度在一公里內的記錄

方法3:按矩形算
優點:快,缺點:不是圓型的範圍,平均執行150ms(推薦這個,比較快)

 DECLARE @GGP_LOCATE_POINT GEOGRAPHY = GEOGRAPHY::Point( 31.358772277832,120.690238952637, 4326); 
DECLARE @FLT_LONGITUDE   FLOAT,  @FLT_LATITUDE   FLOAT  --緯度
SELECT @FLT_LONGITUDE =120.690238952637, @FLT_LATITUDE =31.358772277832
SELECT @GGP_LOCATE_POINT.STDistance(GEOGRAPHY::Point(31.358772277832,120.690238952637, 4326)) as [驗證距離], *  FROM taable
WHERE
 flat  BETWEEN @FLT_LATITUDE-0.010 AND @FLT_LATITUDE+0.010
AND flon BETWEEN @FLT_LONGITUDE-0.010 AND @FLT_LONGITUDE+0.010