FAQ
ArcGIS Pro SDK: レンダラーのコピー

ナレッジ番号:5959 | 登録日:2025/07/14 | 更新日:2025/08/12

概要

ArcGIS Pro SDK でレイヤーのレンダラー(シンボル)を別のレイヤーにコピーする方法をご紹介します

サンプルコード

こちらのサンプルでは [コンテンツ] ウィンドウの一番上にあるレイヤーのレンダラーを、二番目にあるレイヤーにコピーします。 FeatureLayer.GetRenderer でレイヤーからレンダラーを取得し、FeatureLayer.SetRenderer でレンダラーを設定します。
QueuedTask.Run(() =>
{
    // マップの全レイヤーを取得
    Map map = MapView.Active.Map;
    List<FeatureLayer>layers = map.GetLayersAsFlattenedList().OfType<FeatureLayer>().ToList();

    // 一番上と二番目のレイヤーを取得
    FeatureLayer featureLayer1 = layers[0];
    FeatureLayer featureLayer2 = layers[1];

    // レイヤーのジオメトリ タイプが同じ場合にレンダラーをコピー
    if(featureLayer1.ShapeType == featureLayer2.ShapeType)
    {
        // コピーするレンダラーを取得
        var renderer = featureLayer1.GetRenderer();
        // 取得したレンダラーをレイヤーに設定
        featureLayer2.SetRenderer(renderer);
    }
});
このコードを実行すると以下のようにレンダラーがコピーされます
 

補足

FeatureLayer.GetRenderer、FeatureLayer.SetRenderer メソッドは MCT スレッド上で実行する必要があります。
GetRenderer() Method—ArcGIS Pro 
SetRenderer(CIMRenderer) Method—ArcGIS Pro

メタデータ

機能

種類

製品