我正在嘗試使用SQL Server 2014函數來確定地理曲面上兩點之間的距離。我在表格中有三個字段(經緯度,座標)。 [緯度]和[龍]是現有的價值觀和我店使用下面的[座標]字段地理點的座標:SQL Server空間功能:.STDistance是否返回英里或米?
UPDATE dbo.[MyTable]
SET [Coordinates] = geography::STPointFromText('POINT(' + CAST([Lon] AS VARCHAR(20)) + ' ' + CAST([Lat] AS VARCHAR(20)) + ')', 4326) ;
所以現在我有一個完整的具有地理座標記錄表預在[座標]字段中計算。現在我想確定Point_A和Point_B之間的距離(英里)。我用下面的:
- 計算點A:
DECLARE @g geography = (SELECT [Coordinates] FROM [MyTable] WHERE [Id] = 68);
- 計算點B:
DECLARE @h geography = (SELECT [Coordinates] FROM [MyTable] WHERE [Id] = 1439);
- 計算距離:
SELECT ROUND(@g.STDistance(@h)) AS [Distance];
的實際距離約爲20英里,但是這個計算給了我一個比20英里大幾千倍的數字。
是.STDistance返回米而不是英里?
相關提示:任何人都可以指向我,其中一個用含點的一千另一個表的地理位置最近點匹配上千個地點的表在網絡上的例子嗎?如果我找不到縮短過程的方法,我可以看到這個計算需要很長時間。
可能的重複[SQL Server 2008 GEOGRAPHY STDistance()value](http://stackoverflow.com/questions/3335773/sql-server-2008-geography-stdistance-value) – GSerg
至於速度,我相信你想要一個[空間索引](https://msdn.microsoft.com/en-us/library/bb934196%28v=sql.120%29.aspx)([限制可能適用](https://msdn.microsoft。 COM/EN-US /庫/ bb895265%28V = sql.120%29.aspx#地理))。 – GSerg
我相信它是以米爲單位 – mattias