GeoEvent Server 中的事件数据具有相关联的方案,该方案可以识别事件数据的属性字段和数据类型(日期、字符串和整型等)。 这个方案被称为 GeoEvent 定义。 要查看 GeoEvent 定义,请在 ArcGIS GeoEvent Manager 中单击站点 > GeoEvent > GeoEvent 定义。
GeoEvent 定义简介
为使输入连接器能够根据正在进入的事件构建 GeoEvent,必须存在与事件流中的数据相一致的 GeoEvent 定义。 同样地,为使输出连接器能够构建 GeoEvent 并发送事件数据,必须存在一个与指定输出的方案相一致的 GeoEvent 定义。
GeoEvent 定义可由用户创建并编辑。 某些输入连接器可以基于它们在所接收的事件中发现的数据来创建事件定义。 管理员导入事件定义来支持某些操作,比如更新已发布的要素服务。 这意味着已知 GeoEvent 定义的列表会频繁更改。
注:
将随 GeoEvent Server 安装两个 GeoEvent 定义,incident 和 TrackGap。 这些 GeoEvent 定义只能查看和复制,而不能删除和编辑;事件检测器处理器和追踪间距检测器处理器使用这些 GeoEvent 定义。
GeoEvent Server 入门教程中包含练习,这些练习将演示如何创建 GeoEvent 定义、输入连接器如何根据其接收的数据构建 GeoEvent 定义以及如何导入来自发布的要素服务的 GeoEvent 定义。 要查看教程,请访问 GeoEvent Server 教程。
GeoEvent 定义字段数据类型
GeoEvent 定义中包含的每个字段均具有关联的字段数据类型。 在输入连接器根据流事件数据构建 GeoEvent 时,或在通过输出连接器发送 GeoEvent 前解构 GeoEvent 时,将使用此字段数据类型。
可用字段数据类型如下:
- 布尔
- 日期
- 双精度
- 浮点型
- 几何
- 组*
- 整型
- 长整型
- 短整型
- 字符串
* 有关组数据类型的详细信息,请参阅下方的字段组。
字段基数
某些基于事件的数据流可定义一种单个字段具有多个条目(如数组)的方案。 在 GeoEvent 定义中,这些字段被表示为基数大于一的字段。 字段基数是一种高级功能,用于在发现上述情况时为数据流提供支持。
管理员可在 GeoEvent Manager 中配置 GeoEvent 定义的基数,方法是将字段基数由一更改为多。
字段组
某些数据源可定义这样一种方案,其中单个字段不是离散数据类型(如日期、字符串和整型),而是包含多个数据值类型的组。 在 GeoEvent 定义中,这些字段被表示为组。 组内每个字段的离散数据类型将以缩进形式排列在字段组名称下。
字段组支持是另一种高级功能,用于在发现上述情况时为数据源提供支持。 组字段数据类型可以包括嵌套组,允许创建复杂结构。
在 GeoEvent Manager 中,将 GeoEvent 定义的字段配置为组字段的方法是将字段类型更改为组。
注:
并非所有的输出连接器都支持字段包含多个基数或组结构的事件数据。 例如,当使用添加要素输出连接器或更新要素输出连接器时,必须使用字段映射器处理器使事件数据结构变平,以使其与要素服务图层期望的方案匹配。 另一个示例是,当使用将要素发送到流服务输出连接器时,应将事件数据结构展平,以使从流图层中生成的要素弹出窗口显示简单的文本值而不是等级 JSON。
字段名称限制
GeoEvent 定义中的属性字段名称不能包含以下任意字符:$ . [ ] ? * < > ! = { } % ( )。 字段名称虽然不受限制,但也不应使用通常被识别为算术或逻辑运算符的元字符,例如加 (+)、减 (-)、乘 (*)、除 (/)、逻辑 AND (&&)、逻辑 OR (||) 以及空格。
最佳做法是从字段名称中删除所有非字母数字或下划线的字符。 有关详细信息,请参阅字段命名原则,以及 Esri 技术支持文章 ArcGIS 中的字段名称和表名称中不能使用什么字符?。
如果必须在 GeoEvent 定义的属性字段名称中使用元字符(不建议),则应在事件处理工作流中尽早使用字段映射器处理器重新映射事件记录的方案,以解决字段命名限制。 有关示例,请参阅字段名称界定中的说明。