FAQ
ArcGIS Pro SDK: 表示範囲枠の作成

ナレッジ番号:3354 | 登録日:2023/05/29 | 更新日:2024/10/09

概要

表示範囲枠は、別のマップ フレームの位置を表す図形のことを言います。

サンプル コード

protected async override void OnClick()
{
    await QueuedTask.Run(() =>
    {
        // 現在開いているレイアウトを取得
        LayoutProjectItem layoutItem = Project.Current.GetItems<layoutprojectitem>().FirstOrDefault();
        Layout layout = layoutItem.GetLayout();

        // 外観図となるマップフレームを取得(表示範囲枠を入れたいマップフレーム)
        MapFrame mapframe = layout.FindElement("概観図") as MapFrame;

        // マップフレームのプロパティを取得
        CIMMapFrame mapFrameDef = mapframe.GetDefinition() as CIMMapFrame;

        // 表示範囲枠の生成
        CIMExtentIndicator extentIndicator = new CIMExtentIndicator();
        Debug.WriteLine(extentIndicator);
        extentIndicator.IsVisible = true;
        extentIndicator.SourceMapFrame = "詳細図";  // 参照するマップフレーム名を指定
        extentIndicator.ExtentIndicatorType = ExtentIndicatorType.Frame;

        // 表示範囲枠のシンボルを設定
        // 塗りつぶし色をなし、アウトラインを赤色・アルファ値30(0 で透明、100 で不透明)
        var polySymbol = SymbolFactory.Instance.ConstructPolygonSymbol(CIMColor.NoColor(), SimpleFillStyle.Solid);
        polySymbol.SetOutlineColor(CIMColor.CreateRGBColor(255, 0, 0, 30));
        extentIndicator.Symbol = polySymbol.MakeSymbolReference();

        // マップフレームのプロパティに生成した表示範囲枠を指定
        // 1つのマップフレームで複数の表示範囲枠を持てるので配列に入れてから代入
        CIMExtentIndicator[] Indicators = new CIMExtentIndicator[1] { extentIndicator };
        mapFrameDef.ExtentIndicators = Indicators;
        mapframe.SetDefinition(mapFrameDef);

    });
}

参考情報

メタデータ

機能

種類

製品