在 SQL Server 中精確計算地理點之間的距離
地圖座標之間準確的距離計算至關重要。 雖然某些公式提供近似值,但 SQL Server 的內建功能提供卓越的精確度。
利用 SQL Server 的 geography
資料型態(SQL Server 2008 及更高版本)
geography
資料類型(在 SQL Server 2008 及更高版本中可用)為計算距離提供了強大的解決方案。 方法如下:
<code class="language-sql">DECLARE @source geography = 'POINT(0 51.5)' DECLARE @target geography = 'POINT(-3 56)' SELECT @source.STDistance(@target)</code>
此查詢傳回以公尺為單位的距離。
將 geography
類型與現有資料整合
如果您正在使用已建立的資料庫模式,則可以無縫整合 geography
類型。 Point
方法有助於實現這一點:
<code class="language-sql">DECLARE @orig_lat DECIMAL(12, 9) DECLARE @orig_lng DECIMAL(12, 9) SET @orig_lat=53.381538; SET @orig_lng=-1.463526; DECLARE @orig geography = geography::Point(@orig_lat, @orig_lng, 4326); SELECT *, @orig.STDistance(geography::Point(dest.Latitude, dest.Longitude, 4326)) AS distance FROM #orig dest;</code>
此範例保留現有資料結構,同時利用 geography
資料類型的準確度進行距離計算。
以上是SQL Server如何精確計算兩個經緯度點之間的距離?的詳細內容。更多資訊請關注PHP中文網其他相關文章!