The GIS Professional Group

レイヤーをコピーする方法

2009/1/21 (水)

ArcObjects には IClone というインタフェースがあり、これを実装しているクラスは IClone::Clone() メソッドによってオブジェクトの複製が行えます。しかし、TOC でレイヤをコピー&貼り付けのように、レイヤの複製を行いたい場合は、レイヤー クラスに IClone 実装されていないためが使えません。

その代わりに使用するのが IObjectCopy インタフェース。これは ObjectCopy クラスをインスタンス化して IObjectCopy::Copy()メ ソッドによってオブジェクトの複製を行います。

オブジェクトのコピーなので、FeatureLayer だとシンボルとか選択状態、フィルタ設定などの情報もすべてコピーされます。

ヘルプを読むと IPersistStream インタフェースを実装しているクラスに適用できるようです。基本的に CoClass と考えれば良いです。

サンプルコード

参考

http://forums.esri.com/Thread.asp?c=93&f=1170&t=259909#798335

  • B!