首頁 >資料庫 >mysql教程 >如何在 SQL Server 中計算兩個緯度/經度點之間的距離?

如何在 SQL Server 中計算兩個緯度/經度點之間的距離?

Susan Sarandon
Susan Sarandon原創
2025-01-12 13:02:43195瀏覽

How Can I Calculate the Distance Between Two Latitude/Longitude Points in SQL Server?

利用 SQL Server 的地理資料型別進行距離計算

確定由緯度和經度指定的兩點之間的距離需要專門的方法。 SQL Server 從 2008 版本開始提供 geography 資料類型,這是處理和分析地理資訊的強大工具。

geography::Point 方法為每個點構造一個 geography 對象,使用 SRID 4326,對應於 WGS84(世界大地測量系統 1984)。 建立這些物件後,STDistance 方法將有效計算距離:

<code class="language-sql">DECLARE @orig geography = geography::Point(@orig_lat, @orig_lng, 4326);

SELECT *,
       @orig.STDistance(geography::Point(dest.Latitude, dest.Longitude, 4326)) AS distance
--INTO #includeDistances
FROM #orig dest</code>

這會產生以公尺為單位的精確距離。 例如,給定樣本資料:

<code>Latitude        Longitude     Distance 
53.429108       -2.500953     85.2981833133896</code>

計算出的距離約為 85.3 米,比更簡單的方法提供了更準確的結果。因此,geography 資料類型是 SQL Server 中地理空間應用程式的強大且高效的解決方案,可簡化複雜的計算,同時提高準確性。

以上是如何在 SQL Server 中計算兩個緯度/經度點之間的距離?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn