FAQ
ArcObjects でシンボルのインポートを行いたい

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

概要

ArcObjects でシンボルのインポートを行う方法の 1 つに、IGeoFeatureLayer::Renderer を取得して、別の GeoFeatureLayer の Renderer に設定する方法があります。

シンボルをインポートするもう 1 つの方法は、[レイヤーのシンボル情報を適用 (Apply Symbology From Layer)] ツールを使用する方法です。

ここでは、あるマップ ドキュメントに含まれるレイヤーのレンダラーを取得して、別のマップ ドキュメントに含まれるレイヤーにインポートするためのサンプルコードをご紹介いたします。

サンプル コード

//適用元のMXD
IMapDocument pMapDocument_from = new MapDocumentClass();
string path_from = @"C:\gis_work\MXDs\JapanDoc1.mxd";
//プログラミング上で開く
pMapDocument_from.Open(path_from);

//適用先のMXD
IMapDocument pMapDocument_to = new MapDocumentClass();
string path_to = @"C:\gis_work\MXDs\JapanDoc0.mxd";
//プログラミング上で開く
pMapDocument_to.Open(path_to);

////適用元のレイヤーファイル
//string apath = @".lyr パス";
//ILayerFile pLayerFile;
//pLayerFile = new LayerFileClass();
////パスにあるレイヤー ファイルを開く
//pLayerFile.Open(apath);

////適用元:レイヤーファイルのGeoFeatureLayer
//IGeoFeatureLayer pLayerFileLayer = (IGeoFeatureLayer)pLayerFile.Layer;

//適用元:レイヤーのGeoFeatureLayer
IGeoFeatureLayer pGeoFeatureLayer_from = (IGeoFeatureLayer)pMapDocument_from.Layer[0, 0];


//適用先:レイヤーのGeoFeatureLayer
IGeoFeatureLayer pGeoFeatureLayer_to = (IGeoFeatureLayer)pMapDocument_to.Layer[0, 0];

//適用元から適用先へ割り当て
pGeoFeatureLayer_to.Renderer = pGeoFeatureLayer_from.Renderer;

pMapDocument_to.ActiveView.Refresh();
//名前を付けて保存
pMapDocument_to.SaveAs(@"C:\gis_work\MXDs\JapanDoc0_to.mxd",true,true);
//閉じる
pMapDocument_to.Close();

メタデータ

機能

種類

製品