2016-03-02 110 views
-2

我正在使用SQL Server和空間類型。找到了非常有趣的。我遇到了一種情況,我不確定我可以如何解決這個問題。讓我概述查找一條線相交的多邊形數

我有2點(座標)例如。 3,9和50,20 - 這是一條直線,加入此類。

我有多個多邊形(50 +)。

我想能夠計算上面這條線通過多少個多邊形。我的意思是,當我加入2個座標時,該線相交的多邊形數是多少?我想用SQL查詢來解決這個問題。

請讓我知道如果不清楚 - 這很難解釋!

+0

我不能相信12k +用戶問這樣的問題:( –

+0

沒有嘗試嗎?沒有表結構?沒有什麼??? http://stackoverflow.com/help/how-to-ask – dfundako

+0

本是非常有用的回答我的問題 - 對他來說沒有任何問題 – amateur

回答

1

根據你的座標,我假設幾何(而不是地理),但方法應該保持不分。如果你有一個表dbo.Shapes有幾何構型的Shape列,每一行包含一個多邊形,這應該這樣做:

declare @line geometry = geometry::STLineFromText('LINESTRING(3 9, 50 20)', 0); 

select count(*) 
from dbo.Shapes as s 
where s.shape.STIntersects(@line) = 1; 

如果你想知道多邊形相交,只是改變count(*)到更多的東西適當。

+0

感謝Ben的幫助和建設性的回答 - 完全符合我的需求。 – amateur