概要
ArcGIS Pro SDK でレイアウトに対して新規にエレメント(方位記号、縮尺記号、凡例など)を追加する方法をご紹介します。サンプル コード
こちらのサンプルでは 現在アクティブになっているレイアウトに対して方位記号を任意の位置に追加します。QueuedTask.Run(() =>
{
// 現在アクティブになっているレイアウトの取得
var layout = LayoutView.Active.Layout;
// レイアウト内のマップ フレームを取得(マップ フレームが一つの場合を想定)
var map_frame = layout.GetElements().OfType<MapFrame>().First();
// 配置する座標を指定(レイアウトの左下隅が原点 デフォルトのレイアウトの場合、単位は mm )
var position = new Coordinate2D(20, 20);
// ArcGIS 2D スタイル ファイル(多くのシンボルがここに格納)を参照
var proj_style = Project.Current.GetItems<StyleProjectItem>().FirstOrDefault(item => item.Name == "ArcGIS 2D");
// スタイル ファイルから任意の方位記号を取得(方位記号の名称は GUI 上で確認)
var na_style = proj_style.SearchNorthArrows("ArcGIS 方位記号 1")[0];
// 方位記号の情報を NorthArrowInfo オブジェクトにまとめる
var narrow_info = new NorthArrowInfo()
{
MapFrameName = map_frame.Name, // 方位記号が参照するマップ フレームを指定
NorthArrowStyleItem = na_style,
};
// 上記で定義した情報をもとに方位記号を作成
var arrowElement = ElementFactory.Instance.CreateMapSurroundElement(layout, position.ToMapPoint(), narrow_info);
// サイズを調整したい場合は作成後に調整
arrowElement.SetHeight(30);
arrowElement.SetWidth(10);
});
このコードを実行すると以下のようにレイアウトに方位記号が配置されます。
配置したい方位記号の名称については [挿入] タブ → [方位記号] から方位記号の名称をご確認ください。

補足
ElementFactory.CreateMapSurroundElement メソッドでは MapSurround オブジェクトが作成されるため、作成後のエレメントを調整する場合は MapSurround クラスのプロパティやメソッドをご参考ください。MapSurround Class—ArcGIS Pro
このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!