SuperMap iDesktop Java中实现大屏制作

作者:xinxin

前言

每年的双11都会看到各大电商展示的销售大屏,在大屏中很清晰地看到各种统计指数的动态实时变化。而在GIS行业中,也有很多应用中需要用到这种动态实时变化的展示大屏,比如某些交通路段车量分类统计、车流量统计和违章车辆的实时统计等的大屏展示;还有地下管线各种参数指标的统计展示和煤矿灾害监测预警平台中各个地层的冲击地压实时统计的展示。在大屏中,可以把用户关心的数据指标动态实时的展示出来,使用户可以一目了然的掌握各个参数指标的当前情况和变化情况,有利于实时监控和辅助决策者制定应对方案。说了那么多,下面我就带大家来实操一下。

制作前准备

对于GIS项目,我们通常还是在GIS软件平台上来实现。下面我选用SuperMap iDesktop Java 10.0.1软件平台,由于要动态改变数据的属性信息,还要用到Intellij IDEA开发平台对iDesktop Java进行扩展开发。另外,还需要准备项目中的数据和配置的地图等。

大屏制作

将准备好的数据在iDeskktop Java中打开,接下来就可以开始制作大屏了。

新建大屏

在工作空间管理器中【大屏】节点处右键新建一个大屏;

加载地图

在大屏中加载地图前,需要先在工作空间中配置好地图并保存,然后再将配置好的地图添加到大屏中,并在大屏-地图属性中设置对应的参数,如下图:
SuperMap iDesktop Java中实现大屏制作

指数图表

在大屏中添加图表前,需要先在工作空间制作矢量数据集对应的统计图表,下面举个例子,
假设有一个路口的相机的某个时刻记录各个车辆的数据如下:
SuperMap iDesktop Java中实现大屏制作
然后用各种车辆的字段做统计图表,目前支持的统计图表如下:
SuperMap iDesktop Java中实现大屏制作
用户可以根据大屏要求制作不同的统计图表,下面以柱状图为例,选中进入后如下:
SuperMap iDesktop Java中实现大屏制作
选择参与统计的数据集、数据集中的字段、聚合类型和颜色方案等,参数设置完后保存图表。然后点击【大屏】-【图表】,添加工作空间已保存好的图表,并可以在属性中设置对应的参数。
其它类型的统计图表和这个类似,就不再赘述。

图片标注

在大屏中还可以添加文本标注和图片等信息。

本地视频

SuperMap iDesktop Java中实现大屏制作
目前支持.mp4、.avi、.rmvb和.flv后缀的视频。

在线视频

大屏中添加在线视频后,需要设置播放的RTSP地址,下面将移动设备实时录屏的数据转化到大屏中播放,步骤如下:
1、解压流服务包EasyDarwin-windows-8.1.0-1901141151,点击EasyDarwin.exe启动流服务;
2、安装推流的apk在移动设备上安装,然后将【开始推流】中输入启动EasyDarwin.exe后生成的http的IP,如下图:
SuperMap iDesktop Java中实现大屏制作
SuperMap iDesktop Java中实现大屏制作
3、确定推流后在浏览器中输入推流地址(和iMobile中的保持一致),如:http://10.10.1.159:10008 ,然后在【推流列表】中查看“源地址”为需要在idesktop Java中【在线视频】设置的RTSP地址。
SuperMap iDesktop Java中实现大屏制作
点击箭头指向的复制按钮,将RTSP地址复制到iDesktop Java大屏中的在线视频中的RTSP地址,如下图:
SuperMap iDesktop Java中实现大屏制作
4、等大屏中的在线视频识别后,点【预览】可看到效果。

信息板

大屏中的【信息板】需要设置对应的流数据,所以需要先生成对应的流数据,下面通过代码模拟一个流数据,步骤如下:
1、到idesktop Java安装目录下的iDesktopDataFlowService文件夹中,双击启动其中的startup.bat(数据流服务),如下图:
SuperMap iDesktop Java中实现大屏制作
弹框为:
SuperMap iDesktop Java中实现大屏制作
2、进入…/DataFlowClient/中,用IDEA打开DataFlowClient.ipr,保证功能能正常运行,然后运行SendDataController,如下图:
SuperMap iDesktop Java中实现大屏制作
运行功能结果:
SuperMap iDesktop Java中实现大屏制作
3、启动idesktop Java桌面,先生成实时流数据,如下:
SuperMap iDesktop Java中实现大屏制作
连接成功后点确定即可。
4、在大屏中添加信息板,选择对应的信息流,如下图:
SuperMap iDesktop Java中实现大屏制作
最后点【预览】看到效果。

功能扩展

上述指数图表中的数据状态值,怎么让统计图表中的数据动态实时变化,这时就要对iDesktop Java进行功能的扩展,动态改变参与统计图表的字段值。
在扩展开发的时候,iDesktop Java安装目录templates文件下有工程模板,如下图:
SuperMap iDesktop Java中实现大屏制作
然后双击SampleCode.ipr,在IDEA中打开该工程,打开后如有报错,可以在查看工程的引用的iDesktop Java bin中的path路径和jdk是否正确,如果对开发环境不太熟,可以先参考扩展开发文档学习一下。
在修改对象属性值前,需要获取后台传过来的动态信息,可以是后台服务传过来的json数据,也可以是移动端传过来的流数据,或者关联的视频中自动识别的数据等,得到了对象属性的动态值后,然后获取矢量数据集的记录集recordset,通过recordset.setFileldValue()修改对应的属性字段值即可,只要数据的字段值一改变,大屏中对应的统计指数也会相应改变。

预览

大屏中添加元素后,想要看到效果可以点击菜单栏中的【预览】,按“Esc”键退出大屏预览。大屏做好后可以保存大屏即可。

小结

制作大屏时结合功能需求,合理搭配和配置,如果iDesktop Java中没有集成好的控件和功能,可以通过代码对其进行功能定制开发。