我正在使用SQL Server和空間類型。找到了非常有趣的。我遇到了一種情況,我不確定我可以如何解決這個問題。讓我概述查找一條線相交的多邊形數
我有2點(座標)例如。 3,9和50,20 - 這是一條直線,加入此類。
我有多個多邊形(50 +)。
我想能夠計算上面這條線通過多少個多邊形。我的意思是,當我加入2個座標時,該線相交的多邊形數是多少?我想用SQL查詢來解決這個問題。
請讓我知道如果不清楚 - 這很難解釋!
我正在使用SQL Server和空間類型。找到了非常有趣的。我遇到了一種情況,我不確定我可以如何解決這個問題。讓我概述查找一條線相交的多邊形數
我有2點(座標)例如。 3,9和50,20 - 這是一條直線,加入此類。
我有多個多邊形(50 +)。
我想能夠計算上面這條線通過多少個多邊形。我的意思是,當我加入2個座標時,該線相交的多邊形數是多少?我想用SQL查詢來解決這個問題。
請讓我知道如果不清楚 - 這很難解釋!
根據你的座標,我假設幾何(而不是地理),但方法應該保持不分。如果你有一個表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(*)
到更多的東西適當。
感謝Ben的幫助和建設性的回答 - 完全符合我的需求。 – amateur
我不能相信12k +用戶問這樣的問題:( –
沒有嘗試嗎?沒有表結構?沒有什麼??? http://stackoverflow.com/help/how-to-ask – dfundako
本是非常有用的回答我的問題 - 對他來說沒有任何問題 – amateur