一、根据国际海道测量组织(International HydrographicOrganization, IHO)的定义,电子海图显示与信息系统(Electronic Chart Display and Information System,ECDIS)是一种数字形式储存的海图与多种传感器设备、图形显示终端等高度融合的船舶导航综合信息处理系统[1],其中电子海图的显示是实现 ECDIS 系统的基础。电子海图的显示是将符合 S-57 标准[2]《数字航道数据传输标准》的海图数据 ENC(Electronic Navigational Chart)文件进行解析,然后根据 S-52 标准[3]《ECDIS 海图内容与显示规范》进行物标符号化以及分层绘制的过程。电子海图显示方式有基于单幅电子海图文件调图显示的单幅模式和基于多幅电子海图文件拼接显示的拼接模式。由于每个电子海图 ENC 文件的图幅范围有限,所以电子海图的单幅显示方式人为地割裂了连续的海域地理空间[4]。电子海图的单幅海图显示模式操作性差的缺点也给实际应用带来了极大的不便。本文将对电子海图显示的主要流程进行分析,从空间数据的存储方案和电子海图拼接方式两个方面给出相应的显示性能优化方法,同时在 Ubuntu 系统下验证该方法的有效性,并说明该方法在多平台下的适用性。
二、电子海图的显示流程电子海图的显示引擎是电子海图系统开发的核心模块。通常的显示引擎由屏幕中心经纬度、屏幕大小和显示比例尺等视窗参数来确定屏幕显示的地理范围,同时根据显示范围自动搜索海图信息数据库以获取所需绘制的海图物标信息,然后通过加载对应的海图物标信息并执行符号化指令以生成海图物标符号,最后对每幅海图进行拼接绘制完成连续海图显示,具体而言,电子海图的显示流程主要包括以下步骤:步骤一、物标信息的解析及存储:根据 S-57 标准描述 ENC文件的四类特征物标及对应的数据模型[2],利用开源库ISO8211 Lib 对 ENC 数据进行解析,并将其转存为方便易读的系统电子海图(System Electronic NavigationalChart, SENC)文件。步骤二、海图搜索:以 SENC 文件作为数据源,筛选出图幅与屏幕显示地理范围存在交集的单幅海图,并在单幅海图内筛选出地理坐标位于屏幕显示地理范围内的海图物标信息。步骤三、海图拼接显示:根据 S-52显示标准,实现单幅海图物标的符号化显示,按照合理的拼接方式拼接绘制多幅电子海图并进行显示。根据上述步骤可知,影响海图拼接显示效率的两个主要因素为:①步骤一中空间数据存储结构影响了步骤二中海图信息搜索效率;②合理的拼接方式影响了步骤三中海图拼接显示效率以及多幅海图间的衔接质量。因此,本文将从空间数据存储和电子海图拼接方式两个方面给出有效的解决方案,同时提高海图拼接显示的效率。
三、空间数据存储的方案设计传统的空间数据存储方案采用文本形式的 SENC 文件来存储ENC 转换和更正后的海图信息[5]。基于 MySQL 数据库设计电子海图数据的存储方案,利用 MySQL 的 MYISAM 引擎对空间索引的支持能力,可提高海图物标信息的搜索效率。在空间数据类型字段添加空间索引 SPATAIL INDEX,为字段建立 R 树索引,由于 R 树的空间信息搜索算法的时间复杂度是对数级别,所以搜索效率远远高于文本形式。为了保证数据的完整性,数据库表整合了 S-57 标准定义的数据集记录。特征物标记录和空间矢量记录三种类型记录,其具体描述如下: 1.数据集记录的存储 数据集记录表 infos 主要包含海图数据集的描述和统计 信息,其具体内容如下:
表 1 给出了单幅海图的主要统计信息,其中, enc_rect_range 字段为海图外接矩形范围,通过对该字段添 加空间索引 SPATIAL INDEX,可在海图拼接时,在该表中 快速查询得到位于屏幕显示区域内的所有单幅海图信息。 2.特征物标记录和空间矢量记录的存储 特征物标记录表 feature 主要包含物标详细的属性信息 和对应的空间坐标,
根据 S-57 标准中的数据结构可知,ENC 文件中的每一个特征记录分别对应一个海图物标,其存储了物标的非定位性特征记录。ENC 文件的空间记录描述了物标的位置坐标和拓扑结构等详细的空间属性。在表 2 中,fea_id 字段表示物标在所属海图中的序号。利用 fea_id 和 enc_id 字段作为联合主键,可确定不同 ENC 中的唯一物标。rect_range 字段为物标边界范围,通过对该字段添加 SPATIAL INDEX,可提高空间数据的搜索效率[6]。 MYSQL 数据库提供的 Intersects(g1,g2)函数[7]可 用于判断空间 g1 和 g2 是否相交。此时,可将 g2 设置为视 窗地理范围,g1 为数据库表中已建立的空间数据索引字段, 利用 where 条件子句在 infos 表中搜索位于视窗范围内的单 幅海图,进而实现快速构建拼接图集。然后,在 feature 表 中搜索每个单幅海图中位于视窗范围内的物标,进而实现海 图物标的快速搜索。即利用空间索引对空间信息的快速搜索 能力,来提高海图的拼接显示效率。