リアルタイム レイヤへのカスタム 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 アクションは、トラッキング レイヤにリアルタイム イベントを追加するときにそのイベントに適用されますが、アクションを開始する前にレイヤにすでに存在しているイベントには適用されません。

リアルタイム トラッキング レイヤのカスタム VB アクションの詳細

手順:
  1. Visual Basic Editor を使用して、リアルタイム トラッキング レイヤで使用する VB マクロを作成します。
  2. [コンテンツ] ウィンドウでアクションの適用先とするトラッキング レイヤを右クリックして、ショートカット メニューの [プロパティ] をクリックします。[レイヤ プロパティ] ダイアログ ボックスが表示されます。

    または、[コンテンツ] ウィンドウで対象のトラッキング レイヤをダブルクリックすることもできます。

  3. [レイヤ プロパティ] フォームの [アクション] タブをクリックします。
  4. [新規アクション] ボタンをクリックします。
    [新規アクション...] ボタンをクリックしてアクションを新規作成します
  5. [作成するアクション タイプ] パネルの [Visual Basic] を選択します。[Visual Basic] オプションは、リアルタイム トラッキング レイヤを扱っている場合にのみ表示されます。
    [Visual Basic] アクションを選択します
  6. テキスト ボックスをクリックして、アクションの名前を入力し、[OK] をクリックしてアクション パラメータ フォームを開きます。
  7. [Visual Basic アクション パラメータ] ダイアログ ボックスで [プロジェクト] ドロップダウン矢印をクリックし、[Project] または [Normal] を選択します。
    [Visual Basic アクション パラメータ] ダイアログ ボックス
  8. Normal フォルダに保存されているマクロは、ArcMap で開くすべてのドキュメントに影響します。Project フォルダにあるマクロは、現在のマップ ドキュメントにのみ影響します。

  9. [モジュール] ドロップダウン矢印をクリックし、マクロが記述されているモジュールを選択します。
  10. Visual Basic Editor のデフォルトのモジュール名は ThisDocument です。

  11. [マクロ] ドロップダウン矢印をクリックし、使用するマクロの名前を選択します。

    VB マクロを事前に作成してこのモジュールに保存している場合は、そのマクロがリストに表示されます。

  12. アクションにトリガを設定します。[アクションの始動] パネルで、次の必要ないずれかのオプションのボタンをクリックし、さらに手順に従ってトリガを設定します。

    常に

    アクションは常に実行されます。

    属性クエリ

    アクションは、属性条件に基づいて実行されます。属性トリガを設定する方法の詳細

    ロケーション クエリ

    アクションは、ロケーション条件に基づいて実行されます。ロケーション トリガを設定する方法の詳細

    属性 と ロケーション クエリ

    アクションは、属性条件とロケーション条件の組み合わせに基づいて実行されます。

  13. 対象のアクションに対するトリガの設定を完了したら、[OK] をクリックしてアクションを作成します。
  14. 新しいアクションがレイヤ アクションのリストに表示されます。そのリストにその他のレイヤ アクションが表示されている場合、上下の矢印ボタンを使用して、トラッキング レイヤに適用する順序でそれらのレイヤ アクションを配置することができます。対応するチェックボックスをオンまたはオフにすることによって、リスト内のレイヤ アクションを有効または無効にすることもできます。
    上下の矢印ボタンを使用してアクションの順序を変更できます
  15. [レイヤ プロパティ] ダイアログ ボックスの [適用] または [OK] をクリックして、すべての変更内容を適用します。
ヒントヒント:
このアクションで使用する VB マクロは、リアルタイム トラッキング データの形式に従っている必要があります。手がかりとなる簡単な VB マクロを以下に示します。

次のマクロを実行すると、受信データ メッセージの 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 アクションの使用には注意が必要です。たとえば、数千のイベントを伝送するリアルタイム データ フィードでこの例で挙げたメッセージ ボックス マクロを使用した場合、すべてのレコードがアクションのトリガ条件を満たしていると、この数千のイベントそれぞれでメッセージ ボックスを閉じる必要があります。

関連トピック

5/10/2014