2010-06-04 109 views
6

我正在使用緯度/長度的地理點,並且需要在該點的5英里半徑範圍內查找我們數據庫中的其他點。然而,我似乎無法找出STBuffer的「單位」,它似乎不符合英尺,英里,米,公里等。文件只將它們稱爲「單位」,任何建議?謝謝SQL Server 2008地理.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

回答

5

STBuffer以米爲單位。 More info here.

要轉換,英里米,由0.0006213712

(即5英里/ 0.0006213712 = 8,046.72米)除以里程數

+2

古怪的術語「米」只在*範例*,而不是在'distance'參數的描述顯示出來。 – 2010-06-04 13:58:39

+0

環球距離以米/公里計算/等。我認爲只有美國仍然使用英制(英寸/英尺/英里)。 – Nordes 2010-10-25 09:54:36

9

測量的單位取決於在使用空間參照系上。請參閱本系統視圖的詳細信息:

SELECT * FROM sys.spatial_reference_systems;

+2

即使原始問題指定了地理位置,但我到達這裏時一般會查找STBuffer測量單位(幾何圖形或地理位置)。爲了節省其他人的注意力,對於幾何體,度量單位是幾何體的座標系。所以如果你使用緯度/長度,geometry.STBuffer(1)將是整個1度,而不是1米。相比之下,1度是巨大的 - 大約69英里。 – 2013-10-17 06:19:49

+0

這就是爲了告訴你,如果你想要在地球上表示點,geography是正確的數據類型(不是幾何圖形)! – 2015-06-01 03:20:24