ArcGIS GeoEvent Server的GE定义(GeoEvent Definition)的注意事项

版权声明:转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/90057163

版权声明:转载请注明作者(独孤尚良dugushangliang)出处: https://blog.csdn.net/dugushangliang/article/details/90057163

GE定义如下图所示。

图中红框所示的是GE自带的两个GE定义,这个只能查看,不能删除和修改。其他的是自建的,所以可以修改或删除。Name要求唯一不重复,Filed根据实际需要设置。字段的类型有下图所示的选项。

因为传入到GE的数据严格来说是字符串文本,所以GE需要分辨类型。对于“123”识别成123还是简单的,但日期相关信息能不能识别成日期格式的数据,就不好说了。幸运的是有一个解决办法。

在输入模块设置参数的时候,有一个选项可以设置。以下图为例,当我传输数据给GE的时候,“2019-05-10 12:34:56”根据所选的GE定义走指定的日期字段,系统再根据这个参数试图把字符串以这个格式解析成日期值。

其他数据类型同理,如果格式不匹配,则数据无法传入到GE中。那么如何确认GE是否可以像我们所希望的那样解析数据呢?建议先试着以根据传输数据创建GE定义的方式,测试我们传输的数据会被GE解析成什么数据类型,再根据这些经验做相应的调整。

关于GE定义的各个字段的先后顺序,有必要说明下。

如果是Text传输,比如参阅我这篇文章:https://blog.csdn.net/dugushangliang/article/details/90053176使用TCP socket收发text文本信息,那么数据必须严格依照GE的顺序。如果是WebSocket收发json格式数据,则要求较为宽松。

个人经验总结出GE有以下几种要求:

1.传输数据需要符合输入设定的分隔符,如\n分条,,分字段。请注意,逗号是英文逗号,如果使用中文符号不要问我为什么不管用。\n实际上是二进制的,socket传输数据是以二进制格式传输,所以传送数据转成二进制后再加上b'\n\,不然输入不成功。如果是WebSocket发送json格式的,则不受限于\n,因为一条json就是一条消息,只要符合json格式即可。

2.传输text数据必须符合GE定义的字段顺序及类型。如GE定义的字段为:日期-经度-纬度-备注事项,其相应类型为:日期-双精度-双精度-字符串,则传入GE的文本必须也类似于:2019-05-10 12:34:56,123.456,32.789,江苏省南京市。

3.传输text数据时,不能超过GE定义的字段。如:2019-05-10 12:34:56,123.456,32.789,江苏省南京市,025-12345678这条数据就不能通过日期-经度-纬度-备注事项这个GE定义传入到GE Server中。

4.如果GE定义中有的字段可以为空,如上文所述的GE定义的备注事项可以为空,则可以输入:2019-05-10 12:34:56,123.456,32.789。如果可为空字段不是最后一个,则可通过英文逗号分隔符表示。如:,,,南京表示南京对应第四个字段。

5.传输json数据,则只要json的键名和GE定义中的字段名对应,且相应的数据类型也对应即可。

6.或许实际操作中可能有些出入,不排除是因为环境不同或者鄙人测验不到位,可以多交流,再做补充。

独孤尚良dugushangliang——著

猜你喜欢

转载自blog.csdn.net/dugushangliang/article/details/90057163
今日推荐