2

タイトルは基本的にすべてを言います。私の場合、ポリラインがあり、それがマルチパートかシングルパートかを調べる必要があります。

一般に、インターネット全体 (Google で検索)、特に ESRI のオンライン マテリアルは、このトピックに関してかなり中立的であることが証明されています。ここには希望がありました。関連する抜粋を以下にコピーします。

PathCount プロパティまたは RingCount プロパティをそれぞれ使用して、Polyline 内のパスまたは Polygon 内のリングの数を決定できます。オーバーロードされた GetPoint メソッドを使用して、特定のパスまたはリングの特定の位置にある Point のコピーを取得します。次のコード例は、PathCount、PointCount、および GetPoint メンバーを使用して、Polyline、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

解決策は実に簡単です。ポリラインを にキャストして、IGeometryCollectionその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 に答える