Anwenden einer benutzerdefinierten VB-Aktion auf einen Echtzeit-Layer

Voraussetzung:

Die von Tracking Analyst bereitgestellte benutzerdefinierte VB-Layer-Aktion ist verfügbar, wenn Sie die Software ArcGIS Desktop VBA Resources for Developers installieren und lizenzieren, die im ArcGIS Desktop-Medien-Paket enthalten ist. Installations- und Lizenzierungsinformationen sind im ArcGIS Desktop-Installationshandbuch verfügbar. Nach der Installation finden Sie im Hilfesystem von ArcGIS Desktop VBA Resources for Developers Anleitungen dazu, wie Sie den Visual Basic-Editor zum Erstellen von Makros für ArcGIS Desktop verwenden.

Bevor Sie dieses Verfahren durchführen können, müssen Sie mit dem Visual Basic-Editor ein VB-Makro zur Verwendung mit dieser Aktion erstellt haben.

Die benutzerdefinierte VB-Layer-Aktion unterscheidet sich von den anderen Layer-Aktionen, weil sie nur auf Echtzeit-Tracking-Layer angewendet werden kann. Außerdem unterscheidet sie sich von Service-Aktionen, weil sie für einen Tracking-Layer definiert ist, nicht für einen Tracking-Service. VB-Aktionen werden auf Echtzeitereignisse angewendet, wenn sie dem Tracking-Layer hinzugefügt werden, aber sie werden nicht auf Ereignisse angewendet, die vor dem Auslösen der Aktion bereits im Layer vorhanden sind.

Weitere Informationen zu benutzerdefinierten VB-Aktionen für Echtzeit-Tracking-Layer

Schritte:
  1. Erstellen Sie mit dem Visual Basic-Editor das VB-Makro, das Sie für den Echtzeit-Tracking-Layer verwenden möchten.
  2. Klicken Sie im Fenster Inhaltsverzeichnis mit der rechten Maustaste auf den Tracking-Layer, auf den Sie die Aktion anwenden möchten, und klicken Sie im Kontextmenü auf Eigenschaften. Das Dialogfeld Layer-Eigenschaften wird geöffnet.

    Alternativ dazu können Sie im Inhaltsverzeichnis auf den Tracking-Layer doppelklicken.

  3. Klicken Sie im Fenster Layer-Eigenschaften auf die Registerkarte Aktionen.
  4. Klicken Sie auf die Schaltfläche Neue Aktion.
    Klicken Sie auf die Schaltfläche "Neue Aktion...", um eine neue Aktion zu erstellen.
  5. Wählen Sie im Fenster Typ der zu erstellenden Aktion die Option Visual Basic. Die Option Visual Basic ist nur aufgeführt, wenn Sie mit einem Echtzeit-Tracking-Layer arbeiten.
    Auswählen der Visual Basic-Aktion
  6. Klicken Sie in das Textfeld, und geben Sie einen Namen für die Aktion ein. Klicken Sie dann auf OK, um das Aktionsparameterformular zu starten.
  7. Klicken Sie im Dialogfeld Visual-Basic-Aktionsparameter auf den Dropdown-Pfeil Projekt, und wählen Sie entweder Projekt oder Normal aus.
    Dialogfeld "Visual-Basic-Aktionsparameter"
  8. Ein im Ordner "Normal" gespeichertes Makro wirkt sich auf alle in ArcMap geöffneten Dokumente aus. Ein Makro, das sich im Ordner "Projekt" befindet, wirkt sich nur auf das aktuelle Kartendokument aus.

  9. Klicken Sie auf den Dropdown-Pfeil der Option Modul, und wählen Sie das Modul aus, in dem das Makro enthalten ist.
  10. Der Standardmodulname im Visual Basic-Editor ist ThisDocument.

  11. Klicken Sie auf den Dropdown-Pfeil der Option Makro, und wählen Sie den Namen des zu verwendenden Makros aus.

    Falls Sie bereits ein VB-Makro erstellt und in diesem Modul gespeichert haben, wird es in der Liste angezeigt.

  12. Legen Sie den Trigger für die Aktion fest. Klicken Sie unter Auslöser für Aktion auf die gewünschte der unten angegebenen Optionen, und führen Sie die weiteren Schritte zum Festlegen des Triggers aus:

    Immer

    Die Aktion wird immer ausgelöst.

    Attributabfrage

    Die Aktion wird basierend auf den Attributkriterien ausgelöst. Informationen zum Festlegen eines Attribut-Triggers

    Lagebezogene Abfrage

    Die Aktion wird basierend auf den lagebezogenen Kriterien ausgelöst. Informationen zum Festlegen eines lagebezogenen Triggers

    Attribut- UND lagebezogene Abfrage

    Die Aktion wird basierend auf einer Kombination aus attribut- und lagebezogenen Kriterien ausgelöst.

  13. Klicken Sie nach dem Festlegen des Triggers für die Aktion auf OK, um die Aktion zu erstellen.
  14. Die neue Aktion wird in der Liste der Layer-Aktionen angezeigt. Falls in der Liste weitere Layer-Aktionen angezeigt werden, können Sie diese mithilfe der Pfeilschaltflächen verschieben und so die Reihenfolge festlegen, in der sie auf den Tracking-Layer angewendet werden sollen. Sie können Layer-Aktionen in der Liste auch aktivieren bzw. deaktivieren, indem Sie das entsprechende Kontrollkästchen aktivieren oder deaktivieren.
    Zum Ändern der Reihenfolge der Aktionen können Sie die Pfeilschaltflächen verwenden.
  15. Klicken Sie im Dialogfeld Layer-Eigenschaften auf Übernehmen oder auf OK, um alle Änderungen zu übernehmen.
TippTipp:
Von dieser Aktion verwendete VB-Makros müssen dem Format der Echtzeit-Tracking-Daten entsprechen. Einige einfache VB-Makros als Hilfe finden Sie hier:

Dieses Makro zeigt das fünfte Feld einer eingehenden Datenmeldung auf der ArcMap-Statusleiste an. Dieses Makro wird für alle eingehenden Ereignisse ausgeführt, die die Trigger-Kriterien der Aktion erfüllen.

Public Sub StatusBarMacro(ParamArray varArgs() As Variant)
    Application.StatusBar.Message(0) = varArgs(5)
End Sub

Dieses Makro zeigt das dritte Feld einer eingehenden Datenmeldung in einem Meldungsfeld an. Dieses Makro wird für alle eingehenden Ereignisse ausgeführt, die die Trigger-Kriterien der Aktion erfüllen.

Public Sub MessageBoxMacro(ParamArray varArgs() As Variant)
    MsgBox varArgs(3)
End Sub
VorsichtVorsicht:

Gehen Sie beim Verwenden der benutzerdefinierten VB-Aktion mit Bedacht vor. Wenn Sie das oben als Beispiel angegebene Makro mit dem Meldungsfeld beispielsweise für einen Echtzeit-Datenfeed mit Tausenden von Datensätzen verwenden und alle Datensätze die Trigger-Kriterien für die Aktion erfüllt, müssen Sie für jedes einzelne Ereignis ein Meldungsfeld schließen.

Verwandte Themen


7/10/2012