Действия над слоем применяются к объектам, содержащимся в слое трекинга. Их можно применять к слоям трекинга и реального и фиксированного времени. Действия над слоем сохраняются в документе карты и настраиваются в закладке Действия (Actions) диалогового окна Свойства слоя (Layer Properties). При сохранении слоя трекинга в виде файла слоя в ArcMap или ArcGlobe вместе со слоем сохраняются настройки действий.
В отличие от действий над сервисом, действия над слоем целиком выполняются в клиентском приложении, таком как ArcMap. Поэтому эти действия обычно связаны с визуализацией данных для анализа. Например, можно выделить на карте объекты, удовлетворяющие определенному условию триггера.
Пользовательское действие Visual Basic (VB) над слоем — это наиболее сложное действие над слоем. Это действие с широкими возможностями настройки, которое можно применять только к слоям трекинга реального времени. Оно считается действием над слоем, поскольку ссылается на макрос VB, сохраненный в документе карты. Поведение этого действия аналогично действию над сервисом, поскольку оно применяется к событиям по мере их поступления из сервиса трекинга.
Полный набор действий над слоем, возможных в Tracking Analyst, описан ниже.
Выделить/Подавить (Highlight/Suppress)
Действие Выделить/Подавить (Highlight/Suppress) меняет символику объектов, которые отвечают определенным вами критериям триггера. Действие выделения визуально акцентирует внимание на событиях, выделяя их с помощью особых символов. Вы можете выбрать символ для выделения, и при отображении карты он будет помещаться позади обычного символа события. Действие подавления скрывает события, отвечающие критериям триггера, — они не отображаются на карте. Если для слоя задано действие выделения или подавления, оно немедленно применяется ко всем объектам слоя, отвечающим критериям триггера.
Фильтр (Filter)
Действие Фильтр (Filter) над слоем не следует путать с действием Фильтр (Filter) над сервисом. Действие Фильтр (Filter) над слоем позволяет только задать события, которые будут включены в последующую обработку действия или исключены из нее. В Tracking Analyst можно установить последовательность обработки действий, и для этого действия особенно важно понимать, как выстраивается порядок действий. Если после действия фильтра никакие другие действия над слоем не предусмотрены, действие фильтра не будет иметь никакого эффекта. Если после действия фильтра выполняются другие действия, они будут применены только к событиям, включенным в фильтр (или к тем событиям, которые не исключены из фильтра).
Пользовательское действие 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.
Пользовательское действие VB над слоем отличается от других действий над слоем тем, что его можно применять только к слоям трекинга реального времени. Оно также отличается от действий над сервисом, поскольку определено для слоя, а не для сервиса трекинга. Действия VB применяются к событиям реального времени по мере их добавления в слой трекинга, но не применяются к событиям, которые уже существовали в слое до начала действия.
Действие Visual Basic обеспечивает высокую гибкость, поскольку программным способом в макросе VB можно выполнить множество операций. С помощью макросов VB можно выполнять практически неограниченное число действий, например. отображать атрибуты новых событий по мере поступления информации о них, выдавать уведомления аналитику при помощи всплывающих окон или производить операции с поступающими данными. Прежде чем определить пользовательское действие VB над слоем, нужно написать макрос VB в редакторе Visual Basic. Макрос VB имеет массив, содержащий значения всех полей данных для поступающего события.
Более подробно о применении пользовательского действия VB к слою реального времени
В качестве примера ниже приведены два простых макроса VB. Обратите внимание на особую структуру первой строки кода в обоих случаях. Используйте в точности такую структуру для получения значений поступающих данных о событии в одном массиве типа Variant. Тогда можно будет легко обратиться в теле макроса к отдельным значениям полей данных, указав ссылку на массив и задав аргумент равным номеру столбца поля. Порядок полей аналогичен порядку их отображения в таблице атрибутов для слоя трекинга.
Этот макрос показывает пятое поле входящего информационного сообщения в строке состояния 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