一种加载电子海图数据(ENC)的数据快速读写的方法

文档序号:33118438发布日期:2023-02-01 03:14阅读:120来源:国知局
一种加载电子海图数据(ENC)的数据快速读写的方法
一种加载电子海图数据(enc)的数据快速读写的方法
技术领域
1.本发明涉及一种数据快速读写的方法,具体涉及一种加载电子海图数据(enc)的数据快速读写的方法。


背景技术:

2.enc,即官方电子海图(electronic navigational charts,encs),是指国家海道测量机构按国际海道测量组织颁布的《数字式海道测量数据传输标准》制作的矢量电子海图。iho和imo作为知名的国际海道测量组织,为主导电子海图导航相关功能和技术的开发,颁布了一系列数字化海道测量数据传输标准,目前较为主流的数字化海道测量数据传输标准为s-57传输标准。s-57是iho国际海道测量组织规定的官方电子海图数据传输标准。由于数据存储规范、标准完备、便于海图更新和修正等有点,使其在国内外民用、军用领域得到了大量的应用,常作为更新海部地理信息数据的重要数据源。目前,数字地图生产中,通常基于s-57海图对应的纸质海图进行海部要素的采集更新。s-57海图是以描写海域地理信息和航海信息为主的空间数据的有序集合,通常s-57海图文件是以扩展名为.000文件格式存储的,命名为:ccxxxxxx.000,cc为生产机构代码,xxxxxx为文件唯一标识(采用大写字母和数字)。s-57海图可以包含一个或多个数据图层。通过数字海图的分层模型,区分地理空间特征类型,便于数据显示、查询和要素选取等操作。
3.随着海洋环境数据的增多,电子海图数据也日益增大日益复杂。当前电子海图数据的读取大多为对.000文件进行直接的读取,从.000文件中读取电子海图中的数据。这种读取电子海图数据的方式由于读取方式为将电子海图中的不同数据按照不同的数据格式进行读取,且不具备储存数据的功能,因此在进行电子海图数据的读取时存在速度慢,精度低等缺点。因此,电子海图系统如何快速准确地读取电子海图数据变得非常重要。


技术实现要素:

4.针对现有技术存在的不足,本发明要解决的是如何提供一种快速读写电子海图数据(enc)的数据读写的方式。为解决上述技术问题,本发明采用如下的技术方案:
5.一种加载电子海图数据(enc)的数据快速读写的方法,包括如下步骤:
6.(1)计算机在进行数据的读取过程中,相较于对字符串等类型的读取,对于二进制文件可以实现更加有效快捷的读取。因此,在本发明所提到一种加载电子海图数据(enc)的数据快速读写的方法,即为将电子海图数据的.000文件以二进制数据的方式写入二进制文件,并将此二进制文件命名为.enc文件,在通过读取二进制数据的方式对.enc文件进行读取,实现对电子海图数据的快速加载;
7.(2)为实现将电子海图的.000文件中的数据写入二进制文件以及以读取二进制数据的方式对.enc文件进行读取,本发明提出了一种将byte数组分别转换为float、double、short、int等类型数据的方法,以及从.enc文件中将byte数组读取为float、double、short、int类型数据的方法;
8.(3)首先建立电子海图数据的featurestream,将电子海图.000文件中的面图层信息、线图层信息和点图层信息写入到二进制文件.enc文件中;
9.(4)将boundlist的两种情况和symbollist的两种情况进行组合,并将电子海图.000文件中全部的面参数信息、线参数信息和点参数信息在组合而成的四种情况下写入到二进制文件.enc文件中;
10.(5)将存有电子海图数据中点线面图层信息和点线面参数信息的.enc文件保存至电子海图系统中,在下次对.000海图文件进行加载时可直接加载对应的.enc文件,从而大幅提高加载速度,实现对电子海图数据的快速加载;
11.(6)先将.enc文件中的面图层信息、线图层信息和点图层信息所对应的二进制数据按照电子海图对应的数据格式进行转换;
12.(7)将.enc文件中boundlist的两种情况和symbollist的两种情况进行组合而成的四种情况中的面参数信息、线参数信息和点参数信息读取为电子海图对应的数据格式;
13.(8)按照读取出的电子海图数据进行电子海图的绘制,完成加载海图的过程;
14.本发明的优点及积极效果在于:
15.(1)本发明将复杂的电子海图数据以二进制数据格式的形式进行了存储,大大节省了电子海图文件的存储空间。
16.(2)本发明将电子海图数据以二进制形式写入后的二进制文件存入电子海图系统中,使得再次加载相同海图文件时大大简短了加载的时间,实现了电子海图数据的快速加载。
17.(3)本发明在读写电子海图数据时严格按照点线面图层和点线面参数信息进行数据的写入和读取,使得数据不会发生遗漏,保证了数据的完整性和安全性。
18.(4)本发明解决了电子海图数据信息量庞大时加载慢的问题,具有很强的实用性。
附图说明
19.图1是电子海图数据写入二进制文件(.enc文件)的流程图;
20.图2是从二进制文件(.enc文件)中读取电子海图数据并绘制电子海图的流程图;
21.图3是一种加载电子海图数据(enc)的数据快速读写的方法流程图;
具体实施方式
22.本实例以电子海图数据为研究对象,详细描述本发明的实施方式。针对海洋环境日益复杂,电子海图数据日益增大,进而导致电子海图系统加载电子海图数据慢的问题,通过将电子海图数据以二进制的方式进行读写,并将形成的二进制文件进行保存以便再次加载电子海图时可以快速加载,进而实现对庞大的电子海图数据进行快速加载以解决电子海图系统加载电子海图数据慢的问题。
23.为使本发明目的、技术方案更加清楚,下面结合附图详细说明本发明具体实施步骤。
24.参见图1,其示出了本发明实施的将电子海图数据写入二进制文件(.enc文件)的方法的实现流程图,详述如下;
25.1、首先建立电子海图数据的featurestream:建立存储电子海图信息的list,将所
要加载海图的各图层分别在list中建立哈希表,以存储电子海图的相关信息。
26.2、将各图层中对应的点线面图层中的各要素分别以byte数组的形式存储进list中。
27.3、电子海图的显示方式按照“区域边界”显示方式分为符号化区域边界和简单区域边界两种;按照“符号”显示方式分为传统纸质符号和简单符号两种。在将电子海图数据中的点线面参数信息存入二进制文件(.enc文件)中时,需要分别将点线面参数的全部信息以byte数组的形式按照不同的显示方式存储进list中。
28.4、将list以二进制数据的形式导出为二进制文件(.enc文件),并将二进制文件加以保存,使得在再次加载海图文件时可以实现对电子海图数据的快速读取。
29.参见图2,从二进制文件(.enc文件)中读取电子海图数据并绘制电子海图的实现流程图,详述如下:
30.1、首先依据电子海图文件转化而成的二进制文件后在二进制文件中的特殊标识位确定从二进制文件(.enc文件)中读取电子海图信息的起点。
31.2、建立点线面图层信息和点线面参数信息的list用于存储从二进制文件中读取的相关信息。
32.3、将二进制文件中的点线面图层的相关信息以byte数组的形式进行读取,再根据原本电子海图文件中点线面图层信息中的各元素所对应的格式进行转化并存储到点线面图层所对应的list中。
33.4、按照电子海图的“区域边界”显示方式和“符号”显示方式对二进制文件中存储的电子海图的点线面参数信息进行读取,并存储到点线面参数所对应的list中。
34.5、将点线面图层信息和点线面参数信息的list中的各元素进行绘制,输出为电子海图,显示在电子海图系统上。
35.除此之外,为实现将二进制文件中的信息转化为电子海图信息中各元素的数据格式,本发明还提出了一种将byte数组分别转换为float、double、short、int等类型数据的方法,以及从.enc文件中将byte数组读取为float、double、short、int类型数据的方法。
36.以上所述实施例仅为较佳的具体实施方式,本文应用了个例实施的说明用于帮助理解本发明的方法和核心思想,对前述各实施例所记载的技术方案进行修改或部分指标进行等同替换,均应包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1