Применение пользовательского действия 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 для слоев трекинга реального времени
- С помощью редактора Visual Basic создайте макрос VB, который вы примените к слою трекинга реального времени.
-
В окне Таблице содержания (Table of Contents) правой кнопкой мыши щелкните слой трассировки, к которому необходимо применить действие и выберите в контекстном меню пункт Свойства (Properties). Появится диалоговое окно Свойства слоя (Layer Properties).
Также можно дважды щелкнуть слой трассировки в Таблице содержания (Table of Contents).
- Щелкните вкладку Действия (Actions) в окне Свойства слоя (Layer Properties).
-
Нажмите кнопку Новое действие (New Action).

-
Выберите Visual Basic на панели Тип создаваемого действия (Type of Action to Create). Опция Visual Basic будет в списке, только если вы работаете со слоем трекинга реального времени.

- В текстовом поле задайте имя действия и нажмите кнопку ОК, чтобы запустить форму параметров действия.
-
В диалоговом окне Параметры действия Visual Basic (Visual Basic Action Parameters) щелкните стрелку ниспадающего меню Проект (Project) и выберите либо Проект (Project), либо Стандартные (Normal).

- Щелкните стрелку ниспадающего меню Модуль (Module) и выберите модуль, содержащий ваш макрос.
-
Щелкните стрелку ниспадающего меню Макрос (Macro) и выберите имя нужного макроса.
Если макрос VB был уже создан и сохранен в этом модуле, он появится в списке.
-
Настройте триггер действия. В окне Способ запуска действия (How the action will be triggered) нажмите одну из перечисленных ниже кнопок и следуйте дальнейшим инструкциям по настройке триггера:
«Всегда (Always)»
Действие будет запускаться всегда.
«Запрос по атрибуту (Attribute Query)»
Действие будет запускаться с учетом критерия атрибута. Более подробно о настройке триггера атрибута.
«Запрос местоположения (Location Query)»
Действие будет запускаться с учетом критерия местоположения. Более подробно о настройке триггера местоположения.
«Запрос по атрибуту и местоположению (Attribute AND Location Query)»
Действие будет запускаться с учетом комбинации критериев атрибута и местоположения.
- По завершении настройки триггера действия нажмите кнопку ОК, чтобы создать действие.
-
В списке действия слоя появится новое действие. Если в списке появляются другие действия слоя, с помощью кнопок «СТРЕЛКА ВВЕРХ (UP)» и «СТРЕЛКА ВНИЗ (DOWN ARROW)» им можно задать порядок, в котором они должны применяться к слою трассировки. Также действие слоя в списке можно активировать или отключить, отметив или сняв флажок в соответствующем окне.

- Чтобы изменения вступили в силу, в диалоговом окне Свойства слоя (Layer Properties) щелкните Применить (Apply) или OK.
Макрос, сохраненный в папке Стандартные (Normal), влияет на все документы, открываемые в ArcMap. Макрос, находящийся в папке Проект (Project), влияет только на текущий документ карты.
Имя модуля в редакторе Visual Basic по умолчанию ThisDocument .
Подсказка:Этот макрос показывает пятое поле входящего информационного сообщения в строке состояния 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. Например, если бы приведенный в примере макрос поля сообщения использовался для потока данных реального времени с тысячами событий, и все записи отвечали бы критерию триггера действия, вам пришлось бы закрывать поле сообщения для каждого отдельного события.