SuperMap iDesktopX 拡張機能開発用の GPA オペレータ拡張機能

作者: ドンギクス

SuperMap iDesktopX は、SuperMap Research Institute が開発した Windows および Linux と互換性のあるクロスプラットフォームのデスクトップ GIS ソフトウェアであり、同時にプラグイン拡張開発フレームワークを使用してカスタマイズされた開発をサポートします。
カスタム開発に iDesktopX を使用すると、次の利点があります:
⚫ Swing グラフィカル インターフェイス フレームワークを採用し、ユーザーが呼び出すのに便利な 60 以上の GUI コントロールをカプセル化;
⚫ プログラミングを行わずに、構成ファイルによるインターフェイスの構成と管理;
⚫ Java および Python のサポート拡張カスタマイズ;
⚫ カスタマイズ可能な開発インターフェイス機能とビジュアル ジオプロセシング モデリング ツール;
⚫ IDEA を使用して依存関係を自動的に管理および展開し、ワンクリックでの展開を実現します。
ここに画像の説明を挿入
1. 開発プロジェクトの構成:
SuperMap iDesktopX は、開発プロジェクトを拡張するための 2 つの構成方法を提供します。
1) 推奨される方法は、[表示] タブの新しい二次開発プロジェクト機能を使用して、二次開発プロジェクトを直接迅速に構築することです。この方法は効率的で便利です。デスクトップの依存関係を手動で追加する必要はありません。開発プロジェクトの保存パスを選択し、プロジェクト パラメータをカスタマイズできます。また、二次開発サンプル コードをインポートすることもできるため、ユーザーは開発を迅速に拡張できます。
2) もう 1 つの方法は、拡張開発サンプル テンプレートを開くことです。これには、依存関係を手動で追加する必要があります。
1.1.1 推奨される方法
1. 新しい二次開発プロジェクトを作成します: [表示] -> [新しい二次開発プロジェクト] を選択し、ポップアップ ボックスでプロジェクト名、パッケージ名、バージョンなどの情報を設定し、拡張開発テンプレート タイプとして GPA を選択します。このテンプレートは GPA オペレーターを拡張するために使用されます。
ここに画像の説明を挿入
2. IDEA で新しく作成されたセカンダリ開発プロジェクトを開きます: 以下の図に示すように、SampleCode は新しいプロジェクトです。[セカンダリ開発サンプル コードをインポートする] チェックボックスをオンにすると、プロジェクトはセカンダリ開発サンプル テンプレートの SampleCodeTemplates ディレクトリもロードします。
ここに画像の説明を挿入
3. コンパイル: ツールバーの「実行」または「デバッグ」ボタンをクリックすると、コンパイル後に SuperMap iDesktopX が自動的に起動します。開始すると、GPA ツール サンプル グループがツールボックスに追加されます。これには、重複点の削除と座標系の設定のための 2 つのサンプル ツールが含まれます。
ここに画像の説明を挿入
1.2.1 その他の方法
IDEA をインストールした後、拡張開発用のプロジェクト テンプレート SampleCode を開いて設定する必要があります 詳細は次のとおりです: 1. テンプレート
プロジェクトを開きます: IDEA -> ファイル -> 開く -> SuperMap iDesktopX を選択します製品パッケージ
\templates\SampleCode ディレクトリで、拡張機能開発サンプル テンプレート プロジェクトを開きます。
2. デスクトップの依存関係を追加します。 [ファイル] -> [プロジェクト構造] -> [ライブラリ] -> [追加] -> [JAVA] を選択し、ポップアップの [ライブラリ
ファイルの選択] ダイアログ ボックスで次の 4 つのディレクトリを同時に選択し、 [OK] ボタンをクリックして、SampleCode を選択します。
デスクトップの依存関係が二次開発プラグインに追加されます
1) %iDesktopX 製品バンドル %/bin/
2) %iDesktopX 製品バンドル %/bundles/idesktop_bundles/
3) %iDesktopX 製品バンドル %/bundles/require_bundles/
4) %iDesktopX 製品バンドル %/lib/
2. GPA オペレーター
拡張完全なワークフロー実装コード DesktopProcessSampleCode は、推奨される方法で作成された GPA テンプレート拡張機能開発プロジェクトで提供されます。GPA 拡張機能開発クラスは、対応するメソッドを実装するために、オペレーター モデルの基本クラス AbstractDesktopProcess を継承する必要があり、次の点に注意する必要があります

演算子コンストラクタの最初の文はスーパー メソッドを呼び出す必要があります。メソッド パラメータは演算子名です。同じパッケージ内で演算子名を繰り返すことはできません。名前は一意の値です。以下に示すように:

  super("DeleteDuplicatePoints");

2. 入力パラメータの構築
サンプル コードを例として、入力パラメータの構築方法を説明します。
ここに画像の説明を挿入

⚫ sourceDataset: 入力データのキー、関数には複数の入力データが含まれる場合があり、入力データを識別するために使用されます;

DatasetVector.class: 入力値のタイプを制限します、この記事の例は削除する点データセットです重複ポイント、
入力値のタイプは DatasetVector.class です。
入力データを取得するには、対応するコード ステートメントを呼び出す必要があります。入力パラメータのデータを取得するサンプル コードは次のとおりです。
上で構築した入力パラメータのオブジェクト変数を通じて getValue メソッドを呼び出すだけです。
ここに画像の説明を挿入

3. 出力パラメータの構築
サンプル コードを例として、入力パラメータの構築方法を説明します。
ここに画像の説明を挿入

⚫ resultDataset: 関数には複数の出力パラメータがある可能性があるため、出力パラメータを識別する出力パラメータのキーです;

DatasetVector.class: 出力の値のタイプを制限します、この記事の例は重複を削除するポイント データセットですポイント、提案された
出力値のタイプは DatasetVector.class です。
出力データは、対応するコード ステートメントを呼び出す必要があります。出力データのサンプル コードは次のとおりです。
上で構築した出力パラメーター オブジェクト変数を介して setValue メソッドを呼び出すだけです。
4. 関数インターフェイスのカスタマイズ
SuperMap iDesktopX は、データ セット コントロール、フィールド選択コントロール、ラジオ ボックス、チェック ボックスなどの 70 を超えるコントロールをカプセル化しており、
ユーザーが関数ダイアログ インターフェイスを構成するときにこれらを直接呼び出すことができます。ダイアログインタフェース設定のサンプルコードは以下のとおりです。
ここに画像の説明を挿入
5. childExecuteメソッド
childExecuteメソッド内に関数を実行するコードを配置し、実行結果をboolean型で返します。実行が失敗した場合は false を返し、実行が成功した場合は true を返します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/supermapsupport/article/details/130942165