一种基于多数据源的目标坐标修正及显示方法研究
2020-11-11福建汪水翔韩丙亮张豪
■ 福建 汪水翔 韩丙亮 张豪
江西 张有为
编者按:随着信息化的发展、计算机的普及以及网络技术的进步,辅助决策需要的数据越来越多,标准越来越高,时效越来越强,使得原来部署在各业务部门中的单个应用系统无法有效支撑决策人员的需求。本文就融合多源数据进行综合态势展示方面进行研究,并以目标显示子系统为例,对其数据采集、清洗、整编、生成产品的过程进行研究,以期找到一种通用方法来采集、整编多数据源数据,并最终在综合态势显示系统上实现“一张图”展示功能。
基于“一张图”展现目标信息和整体态势,受到各种决策者的认可,但在实际操作过程中遇到不少问题。有些是数据本身问题,如精度不够;有些是政策问题,比如密级不同的数据如何接入平台等。
在构建信息态势综合显示平台中引入目标显示子系统进行信息态势展示时,出现目标坐标精度不够、数据异构等问题。本文就基于JAVAEE框架构建信息态势综合显示平台所用到的多数据源接入问题、修正目标坐标数据等问题进行探讨。
异构数据“一张图”展示过程中遇到的问题
信息态势综合显示平台是基于Oracle11g数据库和JavaEE框架构建的B/S系统,主要优点是易扩展,跨平台,能够快速迁移至国产平台上运行,安全性得到大大提高。
目前各业务部门在用系统大部分都是基于Window平台构建,有C/S架构,也有单机型系统,还有极少量的B/S架构系统。用到的数据库有Access、Oracle8、Oracle10、SqlServer2000、SqlServer2008和Mysql等等,以及其他类型的数据库,对这些异构数据,重新采集和弃用都不可取,必须以某种方式接入到平台加以应用,最终实现“一张图”显示态势。在接入过程中有两类方法:一是平台在线引接业务系统数据显示而不保存数据到本地;二是平台定期抽取业务系统数据至本地,该方法会涉及到异构平台数值转换、数据清洗等问题。
1.目标显示子系统数据本地化抽取
目标显示子系统除了主表的目标信息外,还附带了目标的其他信息,如多媒体信息,包含图片、视频等,数据量大,在抽取过程中对系统资源和网络资源开销巨大,测试过程中数据量稍大就抽取失败。此方法优点是可以把子系统数据完整备份到本地,查询显示速度快,不足是要对数据进行维护,而且与目标显示子系统之间的数据同步也会占用相当的计算资源。
2.目标显示子系统数据在线显示
在线引接数据过程中同样要占用大量的带宽,同时在断网情况下,功能模块几乎不能发挥任何作用。优点是不需要占用本地存储资源,而且不存在数据不一致的情况,也不需要数据维护,不影响原系统的应用。
3.目标显示子系统主信息本地化抽取、辅助信息在线显示
本方案主要考虑目标主信息数据量不大,抽取到本地以后可以提高目标显示效率,同时,为目标坐标修正提供基础数据,解决了子系统未接入时平台无数据显示的问题。其他信息在线查询也解决了大量复杂数据转换问题。
基于混和型数据抽取模式构建目标显示子系统
图1 抽取主表信息到本地数据库
混和型数据抽取模式是指将目标显示子系统的主信息数据抽取并保存到本地,为以后的坐标修正提供数据支撑。而目标附加信息如多媒体信息、目标点其他信息等通过网络实时在线获取的方式而不保存到本地数据库。这样做的好处是既能修正采集的数据坐标信息,也不影响目标显示子系统的数据及功能。
1.采集目标主表信息并保存至本地
首先要配置多数据源,核心参数如下。
数据库主键:编写获取数据并存入本地库代码时用到的多源数据标识,用来唯一标识系统内的多源数据库,如 “srcData”。
驱动类:开发平台引入的驱动类,因目标显示子系统数据库为SQL Server,所以驱动类选择SQLServerDriver。
数据源地址:主要填写源数据库所在在IP地址、提供数据服务的端口和数据库名称,如jdbc:sqlserver://xxx.xxx.xxx.xxx:1433;Datab aseName=xxx。
数据库名称:提供数据服务的数据库名称。
用户名和密码:可以登录数据库的用户名密码,需要向数据库管理员索取。
如果配置正确,点击“测试”按钮,显示链接成功,则该数据源就配置好了,在后面开发过程中引入其主键就可以到相应数据库上获取数据了。
由于目标显示子系统数据库为SqlServer数据库,本地数据库为Oracle11g数据库,所以在转换过程中要考虑两种字段的匹配。主要原理是从远程数据库端通过多数据源方式获取数据,依次插入本地库的方式,第一次全量抽取,后面可以按照计划进行增量抽取,如图1所示。
由于SQLServer数据库与Oracle11g数据库对数据的描述不一样,因此我们要对其中的数据结构进行重新定义,转换后的数据结构如表1所示。抽取后的数据相应填写至本地库对应字段中即可。
2.应用平台多数据源方式引接目标显示子系统数据
进行目标显示子系统数据展示时,先在本地查询相关数据在高清影像图上挂牌显示,通过挂牌信息查询目标显示子系统信息的详细资料,比如服务区,先了解坐标位置,如果要对某个服务区进行详细了解,可以通过挂牌上的入口进行远程数据库查询。整个数据流程如图2所示。
3.构建目标地名查询及分类展示功能模块
通过上述方法构建统一平台上目标显示子系统信息展示的两种方案:一是根据地名查询目标显示子系统信息,支持模糊查询;二是通过目标分类对目标进行分类展示。
(1)根据关键字查询目标显示子系统信息
通过录入关键字信息,在数据库中检索匹配数据,支持模糊查询,其关键实现代码如下:
表1 目标显示子系统主表信息本地化设计
图2 数据流程图
(2)根据目标分类树查询目标显示子系统信息
点击目标显示子系统分类树的节点,可以查询该节点下的目标显示子系统信息。其实现关键代码如下所示:
对目标坐标数据进行校验并修正
图3 调整前龙掘东服务区在图上位置
使用中发现,由于目标显示子系统没有高清影像图做参考,同时精度不够,所以根据该地图采集定位的坐标点一般都有不同程度的偏移。在统一平台上展示时,能明显看出与实际位置有偏差。
以龙掘东服务区为例来说明坐标修正过程。
从图3上看,目标显示子系统信息坐标点往西偏,灰色色椭圆范围内是龙掘东服务区真正所在地,因当时定点坐标时地图精度不够,造成偏移,现予以纠正。
获取鼠标坐标值,转换为经纬度,分别填入新经度对话框和新纬度对话框中,并保存在纠偏数据库表中,等待校验正式入库。
在该模块中,通过校验纠偏后的数据正式入库后,就能得到上图正确的目标上图信息。功能实现主要基于leaflet插件,其主要核心功能代码如下:
结论
本文通过混合式数据抽取方案对基本信息和详细信息分别做了本地化抽取及网络化实时访问的提取数据方案。
实践证明是可行的,即使在子系统断网状态下,也可对目标显示子系统信息的位置及概略信息做查询,在联网环境下,可以对目标显示子系统信息做详细查询。本文数据抽取方案可以同类数据集成提供可行的方法及做法,具有一定的指导意义。