Применение пользовательского действия VB к слою трекинга реального времени

Предварительное условие:

Пользовательское действие VB над слоем в Tracking Analyst возможно, только если установлено лицензированное программное обеспечение ArcGIS for Desktop VBA Resources for Developers, которое входит в пакет медийных средств ArcGIS for Desktop. Сведения об установке и лицензировании можно найти в руководстве по установке ArcGIS for Desktop. Установив программное обеспечение, ознакомьтесь с инструкциями по использованию Visual Basic Editor для создания макросов для ArcGIS for Desktop в справочной системе VBA Resources for Developers ArcGIS for Desktop.

Перед выполнением данной процедуры необходимо создать с помощью редактора Visual Basic макрос VB, который будет использоваться с этим действием.

Пользовательское действие VB над слоем отличается от других действий над слоем тем, что его можно применять только к слоям трекинга реального времени. Оно также отличается от действий над сервисом, поскольку определено для слоя, а не для сервиса трекинга. Действия VB применяются к событиям реального времени по мере их добавления в слой трекинга, но не применяются к событиям, которые уже существовали в слое до начала действия.

Более подробно о пользовательских действиях VB для слоев трекинга реального времени

Шаги:
  1. С помощью редактора Visual Basic создайте макрос VB, который вы примените к слою трекинга реального времени.
  2. В окне Таблице содержания (Table of Contents) правой кнопкой мыши щелкните слой трассировки, к которому необходимо применить действие и выберите в контекстном меню пункт Свойства (Properties). Появится диалоговое окно Свойства слоя (Layer Properties).

    Также можно дважды щелкнуть слой трассировки в Таблице содержания (Table of Contents).

  3. Щелкните вкладку Действия (Actions) в окне Свойства слоя (Layer Properties).
  4. Нажмите кнопку Новое действие (New Action).
    Чтобы создать новое действие, нажмите кнопку Создать действие... (New Action...)
  5. Выберите Visual Basic на панели Тип создаваемого действия (Type of Action to Create). Опция Visual Basic будет в списке, только если вы работаете со слоем трекинга реального времени.
    Выберите действие Visual Basic
  6. В текстовом поле задайте имя действия и нажмите кнопку ОК, чтобы запустить форму параметров действия.
  7. В диалоговом окне Параметры действия Visual Basic (Visual Basic Action Parameters) щелкните стрелку ниспадающего меню Проект (Project) и выберите либо Проект (Project), либо Стандартные (Normal).
    Диалоговое окно Параметры действия Visual Basic (Visual Basic Action Parameters)
  8. Макрос, сохраненный в папке Стандартные (Normal), влияет на все документы, открываемые в ArcMap. Макрос, находящийся в папке Проект (Project), влияет только на текущий документ карты.

  9. Щелкните стрелку ниспадающего меню Модуль (Module) и выберите модуль, содержащий ваш макрос.
  10. Имя модуля в редакторе Visual Basic по умолчанию ThisDocument .

  11. Щелкните стрелку ниспадающего меню Макрос (Macro) и выберите имя нужного макроса.

    Если макрос VB был уже создан и сохранен в этом модуле, он появится в списке.

  12. Настройте триггер действия. В окне Способ запуска действия (How the action will be triggered) нажмите одну из перечисленных ниже кнопок и следуйте дальнейшим инструкциям по настройке триггера:

    «Всегда (Always)»

    Действие будет запускаться всегда.

    «Запрос по атрибуту (Attribute Query)»

    Действие будет запускаться с учетом критерия атрибута. Более подробно о настройке триггера атрибута.

    «Запрос местоположения (Location Query)»

    Действие будет запускаться с учетом критерия местоположения. Более подробно о настройке триггера местоположения.

    «Запрос по атрибуту и местоположению (Attribute AND Location Query)»

    Действие будет запускаться с учетом комбинации критериев атрибута и местоположения.

  13. По завершении настройки триггера действия нажмите кнопку ОК, чтобы создать действие.
  14. В списке действия слоя появится новое действие. Если в списке появляются другие действия слоя, с помощью кнопок «СТРЕЛКА ВВЕРХ (UP)» и «СТРЕЛКА ВНИЗ (DOWN ARROW)» им можно задать порядок, в котором они должны применяться к слою трассировки. Также действие слоя в списке можно активировать или отключить, отметив или сняв флажок в соответствующем окне.
    Порядок действия можно изменять с помощью кнопок СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ.
  15. Чтобы изменения вступили в силу, в диалоговом окне Свойства слоя (Layer Properties) щелкните Применить (Apply) или OK.
ПодсказкаПодсказка:
Макросы VB, используемые в этом действии, должны отвечать формату ваших данных трекинга реального времени. Ниже приведено несколько примеров простых макросов VB:

Этот макрос показывает пятое поле входящего информационного сообщения в строке состояния ArcMap. Данный макрос будет выполняться для всех входящих событий, которые отвечают критерию триггера для действия.

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

Этот макрос показывает третье поле входящего информационного сообщения в поле сообщения. Данный макрос будет выполняться для всех входящих событий, которые отвечают критерию триггера для действия.

Public Sub MessageBoxMacro(ParamArray varArgs() As Variant)
    MsgBox varArgs(3)
End Sub
ВниманиеВнимание:

Будьте осторожны при использовании пользовательского действия VB. Например, если бы приведенный в примере макрос поля сообщения использовался для потока данных реального времени с тысячами событий, и все записи отвечали бы критерию триггера действия, вам пришлось бы закрывать поле сообщения для каждого отдельного события.

Связанные темы

5/10/2014