リアルタイム レイヤへのカスタム VB アクションの適用
Tracking Analyst に用意されているカスタム VB レイヤ アクションは、ArcGIS for Desktop メディア パッケージに収録されている ArcGIS for Desktop VBA Resources for Developers ソフトウェアをインストールしてライセンスを取得している場合に使用可能です。インストールとライセンスに関する情報は、ArcGIS for Desktop インストール ガイドに記載されています。ArcGIS for Desktop VBA Resources for Developers をインストールした後、そのヘルプ システムを参照し、Visual Basic Editor を使用して ArcGIS for Desktop 用のマクロを作成する手順を確認してください。
この手順を実行する前に、Visual Basic Editor を使用して、このアクションで使用する VB マクロを作成しておく必要があります。
カスタム VB レイヤ アクションは、リアルタイム トラッキング レイヤにのみ適用できるので、他のレイヤ アクションとは異なります。また、トラッキング サービスではなくトラッキング レイヤで定義することから、サービス アクションとも異なります。VB アクションは、トラッキング レイヤにリアルタイム イベントを追加するときにそのイベントに適用されますが、アクションを開始する前にレイヤにすでに存在しているイベントには適用されません。
- Visual Basic Editor を使用して、リアルタイム トラッキング レイヤで使用する VB マクロを作成します。
-
[コンテンツ] ウィンドウでアクションの適用先とするトラッキング レイヤを右クリックして、ショートカット メニューの [プロパティ] をクリックします。[レイヤ プロパティ] ダイアログ ボックスが表示されます。
または、[コンテンツ] ウィンドウで対象のトラッキング レイヤをダブルクリックすることもできます。
- [レイヤ プロパティ] フォームの [アクション] タブをクリックします。
-
[新規アクション] ボタンをクリックします。
-
[作成するアクション タイプ] パネルの [Visual Basic] を選択します。[Visual Basic] オプションは、リアルタイム トラッキング レイヤを扱っている場合にのみ表示されます。
- テキスト ボックスをクリックして、アクションの名前を入力し、[OK] をクリックしてアクション パラメータ フォームを開きます。
-
[Visual Basic アクション パラメータ] ダイアログ ボックスで [プロジェクト] ドロップダウン矢印をクリックし、[Project] または [Normal] を選択します。
- [モジュール] ドロップダウン矢印をクリックし、マクロが記述されているモジュールを選択します。
-
[マクロ] ドロップダウン矢印をクリックし、使用するマクロの名前を選択します。
VB マクロを事前に作成してこのモジュールに保存している場合は、そのマクロがリストに表示されます。
-
アクションにトリガを設定します。[アクションの始動] パネルで、次の必要ないずれかのオプションのボタンをクリックし、さらに手順に従ってトリガを設定します。
常に
アクションは常に実行されます。
属性クエリ
アクションは、属性条件に基づいて実行されます。属性トリガを設定する方法の詳細
ロケーション クエリ
アクションは、ロケーション条件に基づいて実行されます。ロケーション トリガを設定する方法の詳細
属性 と ロケーション クエリ
アクションは、属性条件とロケーション条件の組み合わせに基づいて実行されます。
- 対象のアクションに対するトリガの設定を完了したら、[OK] をクリックしてアクションを作成します。
-
新しいアクションがレイヤ アクションのリストに表示されます。そのリストにその他のレイヤ アクションが表示されている場合、上下の矢印ボタンを使用して、トラッキング レイヤに適用する順序でそれらのレイヤ アクションを配置することができます。対応するチェックボックスをオンまたはオフにすることによって、リスト内のレイヤ アクションを有効または無効にすることもできます。
- [レイヤ プロパティ] ダイアログ ボックスの [適用] または [OK] をクリックして、すべての変更内容を適用します。
Normal フォルダに保存されているマクロは、ArcMap で開くすべてのドキュメントに影響します。Project フォルダにあるマクロは、現在のマップ ドキュメントにのみ影響します。
Visual Basic Editor のデフォルトのモジュール名は ThisDocument です。
次のマクロを実行すると、受信データ メッセージの 5 番目のフィールドが ArcMap のステータス バーに表示されます。このマクロは、アクションのトリガ条件を満たす受信イベントすべてに対して実行されます。
Public Sub StatusBarMacro(ParamArray varArgs() As Variant)
Application.StatusBar.Message(0) = varArgs(5)
End Sub
次のマクロを実行すると、受信データ メッセージの 3 番目のフィールドがメッセージ ボックスに表示されます。このマクロは、アクションのトリガ条件を満たす受信イベントすべてに対して実行されます。
Public Sub MessageBoxMacro(ParamArray varArgs() As Variant)
MsgBox varArgs(3)
End Sub
カスタム VB アクションの使用には注意が必要です。たとえば、数千のイベントを伝送するリアルタイム データ フィードでこの例で挙げたメッセージ ボックス マクロを使用した場合、すべてのレコードがアクションのトリガ条件を満たしていると、この数千のイベントそれぞれでメッセージ ボックスを閉じる必要があります。