FAQ
ポリゴンをラインで2つに分割する方法

ナレッジ番号:5553 | 登録日:2023/07/27 | 更新日:2024/11/21

概要

このトピックではポリゴンをラインで2分割する方法について説明します。

 ITopologicalOperator4 インタフェースには Cut メソッドと Cut2 メソッドがあります。 Cut メソッド は、ラインによって分割された結果が左側と右側に分類されて取得できます。 どちらにも分類できない部分は右側に分類されます。一方、Cut2 メソッドは Cut メソッドがより強固になったもので、結果が左側と右側に分類されるのではなく GeometryCollectgion として返ります。Cut メソッドではポリライン、ポリゴンのどちらもカットできますが、Cut2 メソッドはポリゴンにのみ対応しています。

サンプルコード

ITopologicalOperator4::Cut メソッドを使用する方法

IPolygon pPolygon = //ラインで分割したいポリゴンを参照
IPolyline pLine = //ポリゴンを分割するラインを参照

ITopologicalOperator4 pTopo4 = (ITopologicalOperator4)pPolygon;
IGeometry leftGeo;
IGeometry rightGep;
pTopo4.Cut(pLine,out leftGeo,out rightGeo);
//結果のジオメトリの左側部分が第二引数に、結果のジオメトリの右側部分が第三引数に返ります。
//分割で使用するラインの向きが反転すると、結果が変わり、左側部分と右側部分が入れ替わります。
Dim pPolygon As IPolygon = 'ラインで分割したいポリゴンを参照
Dim pLine As IPolyline = 'ポリゴンを分割するラインを参照

Dim pTopo4 As ITopologicalOperator4 = pPolygon
Dim leftGeo As IGeometry
Dim rightGeo As IGeometry
pTopo4.Cut(pLine, leftGeo, rightGeo)
'結果のジオメトリの左側部分が第二引数に、結果のジオメトリの右側部分が第三引数に返ります。
'分割で使用するラインの向きが反転すると、結果が変わり、左側部分と右側部分が入れ替わります。

ITopologicalOperator4::Cut2 メソッドを使用する方法

IGeometryCollection pGeoCol;
IPolygon pPolygon = //ラインで分割したいポリゴンを参照
IPolyline pLine = //ポリゴンを分割するラインを参照
ITopologicalOperator4 pTopo4 = (ITopologicalOperator4)pPolygon;
pGeoCol = pTopo4.Cut2(pLine);
//結果は、分割で使用するラインの向きに依存しません。
Dim pGeoCol As IGeometryCollection
Dim pPolygon As IPolygon = 'ラインで分割したいポリゴンを参照
Dim pLine As IPolyline = 'ポリゴンを分割するラインを参照
Dim pTopo4 As ITopologicalOperator4 = pPolygon
pGeoCol = pTopo4.Cut2(pLine)
'結果は、分割で使用するラインの向きに依存しません。

メタデータ

機能

種類

製品