概要
表示範囲枠は、別のマップ フレームの位置を表す図形のことを言います。
サンプル コード
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);
});
}
参考情報
このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!