2016-02-03 53 views
0

的距離,我發現這個鏈接 Create a SqlGeography polygon-circle from a center and radius什麼是度量單位爲BufferWithTolerance在SQL 2008

表示,它是米。這也顯示我的系統上的米。

SELECT * FROM sys.spatial_reference_systems where spatial_reference_id = 4326; 

但是,當我創建使用此代碼了一圈,得到的圓具有約27英里,我繪製它使用谷歌地圖API和手動測量距離的半徑,這樣的東西肯定是關閉。它應該是1/2米,實際上是27英里。

DECLARE @g geometry; 
SET @g = geometry::STGeomFromText('POINT(-88.0 44.5)', 4326); 
select @g.BufferWithTolerance(.5,.01,1) 

-Randy

+1

我想我想通了。這實際上是度數而不是米。將度數除以60會將其轉換爲英里。無論如何,這似乎對我有用。 – randy

回答

0

的單位將是相同的座標系即度的單位,如果你,如果你,如果你使用一些美國預測的使用UTM或腳使用地理座標,米。

+0

感謝Morten。我想標記你的答案是正確的,但我怎麼知道座標系的單位是什麼? SELECT unit_of_measure FROM sys.spatial_reference_systems where spatial_reference_id = 4326 查詢返回計量表,但對我來說,它似乎是使用度而不是米。 – randy

+0

你需要檢查投影的細節。對於給定的投影,單位總是被定義的。 – MortenSickel

+0

查看http://spatialreference.org/ - 然後看看wkt-representation。那麼,我不得不承認,這是不容易找到...... – MortenSickel

1

如果你看看sys.spatial_reference_systems中的well_known_text列,你會發現4326的單位是度數。這是用於描述平面系統中點的位置和距離的單位。 unit_of_measure列是使用橢圓體類型時用於點和區域之間距離的單位。

因此,您使用的是使用WKT單元的Geometry(SQL平面類型)。如果你要使用Geography(在SQL橢圓型),那麼unit_of_measure用於距離等

可以在這些例子中看到這一點:

幾何

DECLARE @g geometry; 
DECLARE @g2 geometry; 
SET @g = geometry::STGeomFromText('POINT(-88.0 44.5)', 4326); 
SET @g2 = geometry::STGeomFromText('POINT(-88.0 44.0)', 4326); 
SELECT @g.STDistance(@g2) 

0.5 

(距離度)

地理

DECLARE @g geography; 
DECLARE @g2 geography; 
SET @g = geography::STGeomFromText('POINT(-88.0 44.5)', 4326); 
SET @g2 = geography::STGeomFromText('POINT(-88.0 44.0)', 4326); 
SELECT @g.STDistance(@g2) 

55558.5621458782 

(米距離)

https://msdn.microsoft.com/en-us/library/bb964711.aspx#differences

相關問題