标题基本上都说明了一切。在我的情况下,我有一条折线,我必须找出它是多部分还是单部分。
一般而言,整个互联网(通过谷歌搜索),特别是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
财产,但它仍然没有发现。
答案 0 :(得分:5)
解决方案实际上非常简单:只需将折线投射到IGeometryCollection
并检查其GeometryCount
属性即可。如果它大于1,那么它是一个多部分几何。
这不仅适用于折线,也适用于多边形和点。
static bool IsMultiPart(this IGeometry geometry)
{
var geometryCollection = geometry as IGeometryCollection;
return geometryCollection != null && geometryCollection.GeometryCount > 1;
}