【第25回】iDesktopXを自分仕様に!カスタム開発入門
こんにちは!GIS導入支援コンサルタントのippuku_timeです。
「5分で分かるSuperMap iDesktopX製品・機能紹介シリーズ」、第25回です。前回は、3D地図をサクサク動かすための「パフォーマンス最適化」について学びました。今回は、iDesktopXを単なる既製ソフトウェアとして使うだけでなく、皆様の業務に完全にフィットした「自分だけのGIS」へと進化させる「カスタム開発」の世界への扉を開きます。
【第25回】iDesktopXを自分仕様に!カスタム開発入門
1. なぜカスタム開発が必要か?
iDesktopXは非常に高機能なGISソフトウェアですが、世の中のあらゆる業務に100%対応できるわけではありません。カスタム開発を行うことで、以下のような課題を解決できます。
(1) 定型業務の完全自動化: 毎日繰り返すデータチェックや変換作業など、組織独自のワークフローを自動化する専用ツールを作成したい。
(2) 専門分野に特化した機能: 標準機能にはない、特定の業界(例:不動産、林業、電力)で使われる特殊な計算や分析機能を追加したい。
(3) 他システムとの連携: 社内の基幹システムやデータベースとGISを直接連携させたい。
(4) UIの簡素化: GIS専門家ではないユーザー向けに、業務で使う機能だけをまとめたシンプルな操作画面を作りたい。
図25-1 GISソフトウェアをベースに独自のツールやUIを構築するカスタム開発のイメージ
2. iDesktopXのカスタマイズアプローチ
iDesktopXでは、ユーザーのスキルレベルや目的に応じて、複数のカスタマイズアプローチが用意されています。
(1) UIのカスタマイズ(ノンコーディング)
驚くべきことに、iDesktopXのリボンメニューやツールバー、右クリックメニューといったUI要素の多くは、XML形式の設定ファイルで定義されています。つまり、プログラミングの知識がなくても、この設定ファイル(*.config)をテキストエディタで編集するだけで、
* ① ボタンの表示/非表示を切り替える
* ② ボタンの配置や順序を変更する
* ③ 新しいタブやグループを作成する
といったカスタマイズが可能です。これにより、特定の業務に不要なボタンを隠して、初心者にも使いやすいシンプルなUIを簡単に作成できます。
(2) 機能拡張(コーディング)
新しい機能そのものを追加したい場合は、プログラミングによる機能拡張(アドイン開発)を行います。iDesktopXは、主に2つの言語をサポートしています。
① Java: iDesktopXのコア言語であり、パフォーマンスが求められる高度な機能や、独自のUIパネル、複雑な処理を行うためのアドイン開発に適しています。SuperMapが提供する豊富なGISコンポーネント(SuperMap iObjects)の全機能にアクセスできます。
② Python: データサイエンスや自動化の分野で広く使われているPythonは、iDesktopXでも強力な開発言語です。特に、データ処理や空間解析のスクリプト作成、そして後述する「カスタムツール」の開発に最適です。iDesktopXには専用のPython IDEも内蔵されています。
3. Pythonによる二次開発の魅力
GISユーザーにとって、特にPythonによる開発は非常に魅力的です。
(1) 内蔵Python IDE:
iDesktopXには、コードの記述、実行、デバッグが可能なPython開発環境が統合されています。これにより、外部のエディタを別途用意することなく、スムーズに開発を始めることができます。
(2) カスタムツールの作成:
Pythonで作成した独自の処理スクリプトを、iDesktopXの標準ツールと同様に「ツールボックス」に登録することができます。作成したカスタムツールは、
* ① ツールボックスから直接実行できる
* ② 第17回で紹介した「プロセスオートメーション」のモデルに組み込める
* ③ リボンメニューのボタンに割り当ててワンクリックで実行できる
といった利点があり、組織内のGIS利用の幅を大きく広げます。
まとめ
今回は、SuperMap iDesktopXが単なる既製のGISソフトウェアではなく、ユーザーのニーズに合わせて成長させることができる柔軟な「プラットフォーム」であることをご紹介しました。設定ファイルの編集による簡単なUIカスタマイズから、JavaやPythonを使った本格的な機能拡張まで、iDesktopXはあらゆるレベルのカスタム開発に対応しています。これにより、汎用的なGISを、皆様の業務に特化した最強の専用ツールへと進化させることが可能です。
次回は、シリーズ最終回**第26回「作戦司令図を描く!2D/3Dダイナミックプロット」**です。防衛、防災、警察などの分野で使われる、特殊なシンボルを用いた状況図作成機能について解説します。お楽しみに!
付録:サンプルコード(Python)
iDesktopXのツールボックスに追加できる「カスタムツール」をPythonで作成する際の構造的なサンプルコードです。ここでは、入力されたポリゴンレイヤーの各ポリゴンに対して面積(ヘクタール単位)を計算し、新しいフィールドに結果を書き出すツールを想定しています。
Python
コメント
コメントを投稿