簡體   English   中英

SQL Server 2008 Geography .STBuffer() 距離測量單位

[英]SQL Server 2008 Geography .STBuffer() distance measurement units

我正在使用經緯度處理地理點,需要在我們的數據庫中找到該點 5 英里半徑內的其他點。 但是,我似乎無法找出 STBuffer 的“單位”是什么,它似乎不符合英尺、英里、米、公里等。文檔僅將它們稱為“單位”,任何建議? 謝謝

[...] 來自 geography::STGeomFromText('POINT(xy)', 4326).STBuffer(z).STIntersects(geography::STGeomFromText('POINT(' + CAST(v.Longitude as varchar(max)) + ' ' + CAST(v.Latitude as varchar(max)) + ')', 4326)) = 1

測量單位取決於使用的空間參考系統。 有關詳細信息,請參閱此系統視圖:

SELECT * FROM sys.spatial_reference_systems;

STBuffer 以米為單位。 更多信息在這里。

要將英里轉換為米,請將英里數除以 0.0006213712

(即 5 英里 / 0.0006213712 = 8,046.72 米)

對於訪問此頁面的任何人來說,他們對為什么他們的緩沖區距離可能沒有以米為單位出現感到困惑,這可能是因為您使用的是幾何數據類型而不是地理數據類型。 就我而言,很明顯,地理以米為單位運行,而幾何不(它出現的度數?),即使為幾何正確設置了空間參考系統。

要將緯度和經度轉換為地理點:

geography::Point(latitude, longitude, 4326) -- 4326 is WGS-84 EPSG Projection

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM