2012-02-09 42 views
2

標題基本上就是這麼說的。在我的情況下,我有一個折線,我必須找出它是多部分還是單部分。如何確定幾何是否是多部分?

總的來說,整個互聯網(通過谷歌搜索)以及ESRI的在線資料在這個話題上都被證明是相當中性的。有一些希望here。相關提取物下面複製:

可以通過分別使用PathCount或RingCount特性確定的一個多邊形 在折線路徑或環的數目。 使用重載的GetPoint方法獲取特定路徑或環中特定位置的點的副本。通過所有點的折線下面的代碼 示例循環, multiPathLine,使用PathCount,PointCount並用GetPoint成員:

// Iterate through all points in all paths. 
for (int i = 0; i < multiPathLine.PathCount; i++) 
{ 
    for (int j = 0; j < multiPathLine.PointCount(i); j++) 
    { 
     multiPathLine.GetPoint(i, j); 
    } 
} 

前途光明,看起來,無處那麼長,很長的網頁上做自己通知將會開發者什麼類型multiPathLine是。所以我去尋找難以捉摸的PathCount財產,但它仍然沒有發現。

回答

5

解決方案實際上非常簡單:只需將您的折線投射到IGeometryCollection並檢查其GeometryCount屬性。如果它大於1,那麼它是一個多部分幾何體。

這不僅適用於折線,也適用於多邊形和點。

static bool IsMultiPart(this IGeometry geometry) 
{ 
    var geometryCollection = geometry as IGeometryCollection; 
    return geometryCollection != null && geometryCollection.GeometryCount > 1; 
}