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

版权声明:转载请注明作者(独孤尚良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,江苏省南京市,如果某字段允许为空,则只需要用英文逗号分隔表示即可。如这个GE定义的四个字段都允许为空,则我可以输入三个英文逗号,,,代表我输入了一条数据,这是这条数据的四个字段值都是空的。

3.传输text数据时,不严格符合相应的GE定义的数据不会被传输。如有n个字段,则传输的text数据必须有n-1个属性分隔符(本例是默认的英文逗号),且n-1个分隔符分隔出来的n个传输值必须符合其对应的字段类型。如: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——著

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值