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

SQL Server如何精確計算兩個經緯度點之間的距離?

Mary-Kate Olsen
發布: 2025-01-12 13:08:45
原創
863 人瀏覽過

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

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板