如何确定几何是否是多部分的?

时间:2012-02-09 14:12:50

标签: arcobjects

标题基本上都说明了一切。在我的情况下,我有一条折线,我必须找出它是多部分还是单部分。

一般而言,整个互联网(通过谷歌搜索),特别是ESRI的在线资料,已经证明在这个主题上相当中立。有一些希望here。相关摘录复制如下:

  

您可以确定折线中的路径数或a中的环   分别使用PathCount或RingCount属性的多边形。   使用重载的GetPoint方法获取Point的副本   特定路径或环中的特定位置。以下代码   示例遍历折线中的所有点,   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财产,但它仍然没有发现。

1 个答案:

答案 0 :(得分:5)

解决方案实际上非常简单:只需将折线投射到IGeometryCollection并检查其GeometryCount属性即可。如果它大于1,那么它是一个多部分几何。

这不仅适用于折线,也适用于多边形和点。

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