图层操作

图层操作用于追踪图层中包含的要素。因此,可将其应用于实时追踪图层和定时追踪图层。图层操作保存在地图文档中,通过图层属性 对话框上的操作选项卡进行配置。如果在 ArcMap 或 ArcGlobe 中将追踪图层另存为图层文件,则其操作设置也随图层一同保存。

与服务操作不同,图层操作完全位于 ArcMap 等客户端应用程序中。因此,这些操作通常与分析数据可视化相关。例如,您可以高亮显示地图上满足特定触发条件的要素。

自定义 Visual Basic (VB) 图层操作是最高级的图层操作。它是一种高度自定义的操作,仅可应用于实时追踪图层。可将该操作视为图层操作是因为它引用了保存在地图文档中的 VB 宏。由于该图层操作在事件从追踪服务流入时应用于事件,因此该图层操作与服务操作的作用相似。

下面介绍 Tracking Analyst 中提供的整套图层操作。

高亮显示/禁止显示

“高亮显示/禁止显示”操作会对满足所定义触发条件的要素的符号系统进行更改。高亮显示操作通过使用特殊符号系统高亮显示相关事件来从视觉上强调它们。您可以选择用于高亮显示的符号,地图绘制完成时该符号置于事件常规符号之后。禁止显示操作通过根本不在地图上绘制满足触发条件的事件来隐藏这些事件。对图层定义高亮显示或禁止显示操作后,定义的操作将立即应用于图层中满足触发条件的所有要素。

了解如何将高亮显示操作应用于图层

了解如何将禁止显示操作应用于图层

滤波器

不应将“过滤”图层操作与“过滤”服务操作相混淆。“过滤”图层操作只能用于指定进一步操作处理中要包含的事件或要从进一步操作处理中排除的事件。Tracking Analyst 可用于配置处理操作的顺序,理解操作顺序对此操作特别重要。如果在过滤操作之后未定义其他图层操作,则过滤操作将根本不起作用。如果在过滤操作之后定义了其他图层操作,则仅过滤中包含的事件(或非从过滤排除的事件)将被传递给后续操作。

了解如何将过滤操作应用于图层

自定义 VB 操作(仅适用于实时追踪图层)

如果您安装 ArcGIS for Desktop 介质包中的 ArcGIS for Desktop 面向开发人员的 VBA 资源 软件并获得软件许可,则可使用 Tracking Analyst 提供的自定义 VB 图层操作。ArcGIS for Desktop 安装指南中提供有安装和许可信息。安装之后,请参阅 ArcGIS for Desktop 面向开发人员的 VBA 资源帮助系统中有关使用 Visual Basic 编辑器为 ArcGIS for Desktop 创建宏的说明。

由于自定义 VB 图层操作仅可应用于实时追踪图层,因此自定义 VB 图层操作与其他图层操作不同。自定义 VB 图层操作也不同于服务操作,因为它是针对追踪图层定义的,而非追踪服务。由于 VB 操作添加到追踪图层,因此可应用于实时事件,但不可应用于触发操作前已存在于图层中的事件。

很多操作都可以编程方式采用 VB 宏来完成,因此 Visual Basic 操作具有高度灵活性。几乎可通过编写 VB 宏实现所有操作,例如在接收新事件后显示新事件的属性、弹出消息通知分析人员,或处理传入的数据。为图层定义自定义 VB 操作前,必须使用 Visual Basic 编辑器编写 VB 宏。VB 宏带有数组,数组内包含来自传入事件所有数据字段的值。

了解如何将自定义 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
开始行动开始行动:

使用 ParamArray 作为宏的唯一参数可提供最大的灵活性。否则,必须单独列出属性表中的所有列,并且所有数据类型必须与传入数据完全匹配。

警告警告:

应谨慎使用自定义 VB 操作。例如,如果对数以千计事件的某一实时数据源使用示例消息框宏,并且所有记录均满足操作的触发条件,则必须关闭各个单个事件的消息框。

相关主题

5/10/2014