SQL Server地理位置資訊計算兩點經緯度距離
阿新 • • 發佈:2019-02-06
計算兩點距離,4326是空間引用識別符號,4326代表GCS-WGS-1984座標系,是系統預設的座標系。
地理座標系空間需要用geography ,平面座標系空間用geometry,計算距離使用STDistance
DECLARE @g geography; DECLARE @h geography; SET @g = geography::STGeomFromText('POINT(104.12765 31.61)', 4326); SET @h = geography::STGeomFromText('POINT(114.132179 22.547010)', 4326); SELECT @g.STDistance(@h);
查詢某點經緯度距離1000米範圍內的記錄
SELECT * FROM [GpsData] WHERE
geography::STGeomFromText('POINT(' + cast([Longitude] as varchar(20)) + ' '
+ cast([Latitude] as varchar(20)) +')', 4326).STDistance(
geography::STGeomFromText('POINT(114.132179 22.547010)', 4326))<1000
STDistance也可以計算點到面的最短距離。
參考:
空間引用識別符號
https://technet.microsoft.com/zh-cn/library/bb964707(v=sql.105)
STDistance(geometry 資料型別)
https://msdn.microsoft.com/zh-cn/library/bb933952(v=sql.100).aspx
STDistance的使用及geometry和geography的區別
http://blog.csdn.net/jcx5083761/article/details/46010215