【ArcObjects Tips】長方形フィーチャを作成する方法

ArcObjects を使用して長方形(エンベロープ)をフィーチャとして作成したい場合、Envelope オブジェクトを作成して IFeature::Shape プロパティに設定しても Store メソッドに失敗します。しかし、Polygon クラスが実装する ISegmentCollection::SetRectangle メソッドに Envelope を渡すことによって Envelope を Polygon オブジェクトとして利用することができます。結果として、Polygon オブジェクトを作成することになるので、Store メソッドも成功します。

Env2poly_2

VB ソースコード

‘新規ポリゴンを作成します。
Dim pPoly As ISegmentCollection = New Polygon

‘エンベロープをポリゴンにセットします。pEnv は長方形を示す Envelope オブジェクトです。
pPoly.SetRectangle(pEnv)

‘フィーチャクラス(pFLayer.FeatureClass)に新規フィーチャを作成します。
Dim pFeature As IFeature = pFLayer.FeatureClass.CreateFeature

‘フィーチャのShapeプロパティにポリゴンを設定します(ここに pEnv を設定すると、その下の Store メソッドに失敗します)。
pFeature.Shape = pPoly

‘フィーチャを格納します。
pFeature.Store()

※Envelope オブジェクト(pEnv)の作成、フィーチャレイヤ(pFLayer)の取得の過程は省略しています。