FAQ
ArcGIS Pro SDK: ラベルの表示方法

ナレッジ番号:3344 | 登録日:2023/05/29 | 更新日:2023/08/21

概要

ArcGIS Pro SDK for .NET を使用して、ラベルを表示する方法と、ラベルのフォントや色を変更する方法をご紹介します。

サンプル コード

ラベルの操作は LabelClass クラスを使用します。ラベルの色を変更したい場合は CIMColor クラスを使用し、フォントやテキストの大きさを変更したい場合は SymbolFactory クラスConstructTextSymbol メソッドを使用します。

//マップに追加されている最上位のレイヤーを取得
Map map = MapView.Active.Map;
FeatureLayer featureLayer = map.GetLayersAsFlattenedList()[0] as FeatureLayer;

QueuedTask.Run(() =>
{
    //ラベル クラスの取得 ※<>は半角に置き換え実行してください。
    List<LabelClass> listLabelClasses = featureLayer.LabelClasses.ToList();
    LabelClass theLabelClass = listLabelClasses.FirstOrDefault();

    //条件式(デフォルトでは Arcade が条件式の言語と設定されている)
    theLabelClass.SetExpression("$feature.SIKUCHOSON");

    //色を作成(青色を作成)
    CIMColor textColor = CIMColor.CreateRGBColor(0, 0, 215);

    //新規にテキスト シンボルを作成
    //引数1: 色、引数2:フォントサイズ、引数3: フォント名、引数4: フォント スタイル
    CIMTextSymbol newTextSymbol = SymbolFactory.Instance.ConstructTextSymbol(textColor, 14, "Arial", "Bold");

    //新規に作成したテキスト シンボルをラベル クラスに設定
    theLabelClass.SetTextSymbol(newTextSymbol);

    //ラベル表示を ON 
    featureLayer.SetLabelVisibility(true);
});

Image

備考

LabelClass の SetExpression メソッドでは、ArcGIS Pro 上で選択されている言語(デフォルトは Arcade) のみでしか条件式を記述することができません。
他の言語をプログラミングを使用して設定したい場合は、LabelClass の SetExpressionEngine メソッドを使用し、引数に LabelExpressionEngine 列挙型で使用したい言語を設定します。

theLabelClass.SetExpressionEngine(LabelExpressionEngine.Python);
theLabelClass.SetExpression("[SIKUCHOSON]");

メタデータ

種類

製品