拡張するためのアドイン開発時によく使う便利なクラスやメソッド、また、それらを用いた実践的な開発をご紹介します。SDK)を使用する開発の参考にしてください。本シリーズ第1回目となる今回は「マップとの対話的な操作により選択したフィーチャの属性表示を行う機能」を実装する方法をご紹介します。ハンズオンで予習しておくと、本シリーズをよりスムーズに理解できると思います。Tips:マップとの対話的な操作とは?マップとの対話的な操作とは、マップをクリックしたり、ジオメトリをスケッチしたり、マップに対して何らかの操作をしてそこから結果を得ることです。以下動画でマップをクリックした地点の座標を表示させていますが、これはマップをクリックして(マップに対する操作)、そこの座標を取得する(結果を得る)というマップとの対話的な操作の一例です。ツール」というアイテムを使用する必要があります。上記動画の「MapTool1」というボタンがそれにあたります。ツールの実装方法については後述します。表示させる機能を実装します(以下「完成イメージ」参照)。ウインドウの実装方法については後述します。ウインドウの「対話的操作」タブ内の一部機能の実装を行います(当該タブ内のその他の機能は次回の連載にてご紹介します)。他タブの機能も今後の連載でご紹介します。追加するアイテムはデフォルトで「アドイン」タブに配置されます。ウインドウに配置することにより、より操作性の高い機能を開発することができます。ウインドウ右上の「選択」ボタン)することによって、見た目のバランスや操作の導線を考慮した開発をすることができるようになります。」、「ジオデータベース」を中心に使用します。使った独力での開発」をご参照ください。ソースに関して実装のポイントとなる部分を抜粋して解説しますので、ダウンロードをお願いします。本記事で使用するファイル1.Config.damlボタンなどのアイテムに対して、配置場所などを定義するための設定ファイル。プロジェクト作成時にデフォルトで作成されます。作成手順に関しては「1.マップツールの作成」をご参照ください。拡張4:アドインの開発」をご参照ください。4.MainDockPaneViewModel.csViewModel。ウインドウ(MainDockPane.xaml)作成時に自動的に作成されます。ツールはマップに対して対話的な操作を行うためのアイテムです。マップをクリックしたり、ジオメトリをスケッチする際にイベントを発生させることができます。名前を付けて保存しています)。「OnSketchCompleteAsync」メソッド(当該ファイルにデフォルトで作成されているメソッド)の処理を以下のように拡張します。ツールでスケッチしたポリゴンに交差するフィーチャを選択することができます。ツールの作成」は完了です。ウインドウに配置します。ツールが起動するように実装します。「SelectionTool」プロパティとバインドします。「ExecuteSelectionTool()」メソッドが実行されるように実装します(マップツールが起動します)。メソッドが実行されます。「選択」ボタンをバインドすることができるようになります。ツールの要素をコメントアウトします。ウインドウへ配置」は完了です。ビューに含まれているレイヤーを動的に表示するように実装します。「SelectedFeatureLayer」プロパティとバインドさせます。「FeatureLayers」と「SelectedFeatureLayer」プロパティ(「3.1」でバインドさせたプロパティ)を作成します。各々の役割は以下の通りです。ビューに存在するレイヤーを格納します。ボックスに格納」は完了です。プロパティをバインドします。「SelectedFeatureDataTable」プロパティを作成します。クラスを使用すると、より高度なマップとの対話的な操作ができるようになります。クラスは以下の四つです。コンストラクタに以下三つのイベントを登録します。LayersRemovedEvent.Subscribe(OnLayerRemoved);}もう一つのイベント「MapSelectionChangedEvent」を「OnShow」メソッド内で登録します。ウインドウが表示/非表示されるタイミングでイベントの登録/解除を行うことができるようになります。解除するように実装します。イベントハンドラの実装1以下のイベントハンドラを実装します。・OnLayerAdded()マップにレイヤーを追加した時に実行されます。ボックスに格納します。・OnLayerRemoved()マップからレイヤーを削除した時に実行されます。ボックスから削除します。クリアして選択しているフィーチャを解除します。・OnActiveMapViewChanged()アクティブなマップビューが変わった時に実行されます。ビューに存在するレイヤーを格納します。イベントハンドラの実装2以下のイベントハンドラを実装します。