2

标题基本上说明了一切。就我而言,我有一条折线,我必须确定它是多部分还是单部分。

总的来说,整个互联网(通过谷歌搜索),尤其是 ESRI 的在线资料,在这个话题上被证明是相当中立的。这里有一些希望。相关摘录复制如下:

您可以分别使用 PathCount 或 RingCount 属性来确定折线中的路径数或多边形中的环数。使用重载的 GetPoint 方法在特定路径或环中的特定位置获取 Point 的副本。以下代码示例使用 PathCount、PointCount 和 GetPoint 成员遍历折线 multiPathLine 中的所有点:

// 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财产,但仍然没有找到。

4

1 回答 1

5

解决方案实际上很简单:只需将折线转换为 aIGeometryCollection并检查其GeometryCount属性。如果它大于 1,那么它是一个多部分几何。

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

static bool IsMultiPart(this IGeometry geometry)
{
    var geometryCollection = geometry as IGeometryCollection;
    return geometryCollection != null && geometryCollection.GeometryCount > 1;
}
于 2012-02-09T14:13:28.990 回答