CN104182498A - Android平台下电子海图引擎及无时延显示方法 - Google Patents
Android平台下电子海图引擎及无时延显示方法 Download PDFInfo
- Publication number
- CN104182498A CN104182498A CN201410402033.9A CN201410402033A CN104182498A CN 104182498 A CN104182498 A CN 104182498A CN 201410402033 A CN201410402033 A CN 201410402033A CN 104182498 A CN104182498 A CN 104182498A
- Authority
- CN
- China
- Prior art keywords
- sea chart
- bitmap
- scale
- engineer
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Processing Or Creating Images (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种Android平台下电子海图引擎及无时延显示方法,该Android平台下电子海图引擎包括图库管理模块、内存海图库管理模块、所述图库管理模块,包括海图文件库、海图文件管理模块、图库调度模块,还包括渲染模块;该Android平台下电子海图无时延显示方法包括图库调度步骤、内存海图索引步骤以及海图转换步骤、渲染步骤。该Android平台下电子海图引擎及无时延显示方法结合Android平台本身固有的系统硬件的特点以及电子海图的显示特性,综合改进了使用时的拖移缩放延时效果,使得在大多数情景下避免了无法忍受的延时、闪烁的情况,成倍的降低内存占用率与提高了通用处理效率。
Description
技术领域
本发明属于海事、导航、GIS (地理信息系统)领域,具体应用于海图机、导航仪等产品的GIS信息系统的底层支撑平台,特别是Android平台的电子海图项目中,涉及一种Android平台下电子海图引擎及无时延显示方法。
背景技术
在海事、导航、GIS (地理信息系统)领域的业务中,作为海图机、导航仪等产品的GIS信息系统的底层支撑平台,电子海图是项目产品开发环节的一个重要模块。电子海图技术使用计算机可以快速生产数字化形式的海图-电子海图。相对于静态的纸质海图,电子海图的显示有着其无法比拟的优点。例如,可以迅速转换比例尺,以便详细观察航行中的关键航段,可以放大缩小感兴趣区域,可以快速更换海图,将海图信息与接收到的导航信息以及雷达信息等相叠加,在一个屏幕上显示,从而非常直观地为船舶的安全航行提供有力的保障等等。电子海图结合卫星定位设备、水声设备和无线电通信设备,组成电子海图显示与信息系统或电子海图系统,提高海上安全航行的自动化水平。
安卓做为一个新兴的操作系统,其开发的开源性以及广泛的应用性已经开始引领了移动开发的新方向,目前世界上还未出现过其他任何的Android平台下的电子海图引擎。
发明内容
本发明公开了一种Android平台下电子海图引擎,该Android平台下的电子海图引擎解决了以往无法在Android平台上对电子海图文件进行管理、交互操作、拼接绘制、显示更新电子海图的问题,具有底层稳定性好、内存管理效率高、多海图文件的无缝拼接绘制显示以及快速显示更新方法带来的低显示时延、无屏幕闪烁抖动等特点。
本发明还公开了一种Android平台下电子海图无时延显示方法,该Android平台下电子海图无时延显示方法结合了Android平台本身固有的系统硬件的特点以及电子海图的显示特性,综合改进了使用时的拖移缩放延时效果,使得在大多数情景下避免了无法忍受的延时、闪烁的情况,而且减少了以往使用标准海图文件占用存储空间大,处理效率低的问题,成倍的降低内存占用率与提高了通用处理效率。
实现本发明的Android平台下电子海图引擎的第一技术方案为:
包括图库管理模块、内存海图库管理模块;
所述图库管理模块,包括海图文件库、海图文件管理模块、图库调度模块,
所述海图文件库用于存储海图文件,
所述海图文件管理模块用于管理所述海图文件库,
所述图库调度模块用于获取实时的屏幕显示区域信息,根据接收的实时屏幕显示区域信息更新内存中第一海图文件集,
内存海图库管理模块,用于读取由所述图库调度模块更新至内存中的所述第一海图文件集、实时屏幕显示区域信息,根据实时屏幕显示区域设置显示缓冲区域,由所述显示缓冲区域从第一海图文件集中确定第一有效海图元素集,对所述第一有效海图元素集建立索引文件;
还包括渲染模块;
所述渲染模块用于拷贝缓冲内存位图中处于实时屏幕显示区域内的部分生成用于输出显示的第一内存位图,所述渲染模块还包括如下缓冲内存位图初始化模块与缓冲内存位图的更新模块:
(1)、缓冲内存位图的初始化模块,用于读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的海图元素转换至统一的实时屏幕显示区域坐标系中得到第二有效海图元素集,将第二有效海图元素集用表达库规则拼接绘制成缓冲内存位图;
(2)、缓冲内存位图的更新模块,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的缓冲内存位图的区域范围比对得到重叠区域与非重叠区域,更新后的缓冲内存位图中处于重叠区域的部分用更新前的缓冲内存位图中对应重叠区域的部分拷贝得到,更新后的缓冲内存位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第三有效海图元素集,将第三有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分。
图1是整个电子海图引擎在整个电子海图系统中的位置示意图,图2是电子海图引擎框架图,整个电子海图系统中的基于电子海图引擎的应用即是在电子海图引擎的所提供的API接口以及人机界面模块提供的API接口的基础上进行开发的,其中用户参数由整个电子海图系统中包括人机界面、平台图形窗口系统、操作系统以及平台图形库在内的其他模块接收用户信息后处理得到传递至电子海图引擎中,图中的轮廓计算、坐标计算、导航管理模块均为现有海图引擎中的常规技术手段。
所述图库管理模块,包括海图文件库、海图文件管理模块、图库调度模块:所述海图文件库用于存储SENC自定义海图文件格式的海图文件,
所述海图文件管理模块用于管理海图文件库,包括读取所述海图转换模块转换输出的自定义海图文件并添加至所述海图文件库、从所述海图文件库中卸载海图文件、保存海图数据库、从所述海图数据库中读取海图文件,所述海图文件库的采用数据库实现,包括各种关系型如Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等,也可以采用非关系型数据库如NoSQL等,也可以仅仅采用链表、哈希、图、树等常用数据结构进行存储。所述海图文件管理模块的管理功能使用现有数据库的增删改查等基本功能可以很容易实现,海图文件库的保存可存储于各种例如ROM、RAM、SD卡、FLASH或者其他形式的可读介质。
所述图库调度模块用于获取实时的屏幕显示区域信息,根据接收的实时屏幕显示区域信息来计算出当前待加载至内存的第一海图文件集,并根据第一海图文件集更新内存中海图文件;实时的屏幕显示区域信息由系统中人机界面模块根据实时操作进行确定,包括待显示的海图坐标区域信息、比例尺信息等,第一海图文件集的确定方法可以为根据实时屏幕显示区域的坐标信息判断落入或部分落入该区域的海图文件为第一海图文件集中的海图文件,也可以为根据实时屏幕显示区域扩展而成的屏幕显示扩展区域判断落入或部分落入该区域的海图文件为第一海图文件集中的海图文件。海图文件所包含的区域范围可以通过对海图文件头区中的数据项进行计算得到。
所述内存海图库管理模块,用于读取由所述图库调度模块更新至内存中的第一海图文件集的文件头,根据实时屏幕显示区域设置显示缓冲区域,由所述显示缓冲区域确定第一海图文件集中海图文件中待渲染的有效海图元素,所有有效海图元素构成第一有效海图元素集,根据读取的所述第一海图文件集的头文件对所述第一有效海图元素集建立索引文件;索引文件由海图文件文件头中的基本要素值得到,所述建立的索引文件以结构体的方式存储,结构体要素包括:图ID号、图名、由最小纬度最小经度最大纬度最大经度表示的图幅范围确定的南北西东坐标、比例尺、坐标乘数因子、3D 水深乘数因子;
所设置的显示缓冲区域可以与屏幕显示区域大小一致,也可以为包含屏幕显示区域在内的扩展区域;所述海图元素为标准表达库中的概念,根据海图元素中的信息即可由表达库规则计算出可渲染的待显示元素,所述第一有效海图元素集全部由表达库规则表示即可还原出显示缓冲区域内的内存位图。
内存位图为直接用于输出显示的数据文件,由于第一有效海图元素集包含的海图元素有可能来自于不同海图文件中,而不同的海图文件的坐标系不统一则不能进行直接的拼接绘制,所以需要在拼接绘制前的将处于不同海图文件中的海图元素转换至统一的坐标系中,实际实行可以直接转换至屏幕显示区域坐标系,也可以通过先转换至临时的统一坐标系后进行绘制,再将绘制好的内存位图统一转换至屏幕显示区域坐标系,具体的坐标系转换方法为现有技术,本领域技术人员很容易实现,从而实现多幅海图的无缝拼接。
由于第一有效海图元素集所表达的区域范围为根据实时屏幕显示区域设置的显示缓冲区域,将显示缓冲区域设置得大于实时屏幕显示区域,则更新实时屏幕显示区域时,其处于更新前后显示缓冲区域的重叠部分时仅需等待对缓冲显示区域的重叠部分的拷贝即可,省去了等待大耗时的对有效海图集根据表达库规则转换的运算时间,在Android终端上处理器运算速度等硬件运算资源限制较严重时,仍可以保证对海图的无延迟显示,避免了由时延引起的另用户无法忍受的屏幕闪烁和抖动,而且海图的移动也更为顺畅。
所述对海图元素根据表达库规则进行拼接绘制过程中所用的表达库为标准表达库,这里具体地使用了S52表达库。
所述Android平台下电子海图引擎的JNI从Android系统底层的skia图形引擎库调用C++绘制接口以便于保证兼容性以及提高绘制速率。
在第一技术方案的基础上,进一步的,根据实时屏幕显示区域设置的所述显示缓冲区域的区域范围为实时屏幕显示区域的范围的9至12倍。
将所述实时屏幕显示区域设置的所述显示缓冲区域的区域范围设置为实时屏幕显示区域的范围的9至12倍具体在内存位图实现时是依照实时屏幕显示区域的范围中最小比例尺对应的内存位图进行,因为通常在移动海图区域进行细节查看定位时大多数的使用场景是小范围的拖动,在上下左右方向上很少超过当前屏幕显示区域一个屏幕,即使超过用户也需要停顿一下以辨别是否需要再次移动,这样内存位图9-12倍于实时屏幕显示区域范围的设置满足了任意方向至少一个屏幕范围的无延时移动的要求,在大多数情况下由于人眼观察的停顿时间,机器同时更新避免了大多数使用时无法忍受的闪烁抖动。通常情况下所述实时屏幕显示区域处于所述显示缓冲区域中的相对中部的位置,但是在移动至整幅海图边缘或接近边缘时,情况会有所不同,比如说极端情况下移动至整幅海图的左上角、左下角、右上角、右下角时,所述实时屏幕显示区域处于所述显示缓冲区域中的相对位置为左上、左下、右上、右下,所以所述实时屏幕显示区域处于所述显示缓冲区域中的相对位置由实时屏幕显示区域相对于海图文件库显示的总区域的相对位置决定,具体决定的方式包括如下策略示例,但不仅限于如下策略:
a)在边缘处某方向不足以将实时屏幕显示区域置于显示缓冲区域中间位置时,将实时屏幕显示区域与显示缓冲区域的相对位置向相应方向移动以至于显示缓冲区域不超出海图文件库显示的总区域,其余情况将实时屏幕显示区域固定置于显示缓冲区域中间位置;
b)设置根据实时屏幕显示区域与总区域相对位置的横纵向比例因子,根据横、纵向比例因子来调节实时屏幕显示区域在显示缓冲区域中的位置以保证显示缓冲区域不超出海图文件库显示的总区域。
在第一技术方案的基础上,进一步的,还包括海图转换模块,所述海图转换模块用于读取原始海图文件,将读取的原始海图文件按照S57标准的海图元素定义生成海图物标,再将生成的海图物标转换为自定义海图文件格式的自定义海图文件,所述原始海图文件为S57标准海图格式,所述自定义海图文件格式为SENC自定义海图文件格式;
S-57将真实世界定义为特征物标和空间物标,前者描述特征属性,后者描述空间属性。特征物标包括描述特征属性但不包括任何几何形状,而空间物标可以包含位置信息,同时必须包含几何形状。一个物标构成一个记录,一个交换集由多个记录构成,为了方便,又将记录组成文件。因此可以将S57标准海图文件按S57标准可以拆解为若干包含如下信息的(图ID号、图名、南北西东坐标、比例尺、坐标乘数因子、3D 水深乘数因子)海图物标,将这些海图物标再按照SENC自定义海图文件格式组合即可转换为SENC自定义海图文件;读取的海图文件中的原始海图信息来源由包括导航传感仪、陀螺罗经、记程仪、探测仪、GPS/DGPS、RADAR、ARPA、气象仪、气象传真机在内传感装置传送至导航信息接收装置导入终端系统。
所述S57标准海图格式为现有中的一种国际标准定义的一种海图文件格式,转换后的所述SENC自定义海图文件格式分为三部分,具体细节见具体实施方式部分的表1-1至表1-8中所列;
转换后的自定义文件比S57原始文件的大小约小3倍,读入速度约快10倍,减小了海图文件的冗余量,可以满足海量海图在内存中的实时调换。
实现本发明的Android平台下电子海图引擎的第二技术方案为:
包括用于生成当前比例尺底图缓冲位图的当前比例尺底图缓冲位图初始化模块与更新模块、用于生成比例尺元素缓冲位图集的比例尺元素缓冲位图集初始化模块与更新模块、用于生成最小比例尺底图缓冲位图的最小比例尺底图缓冲位图初始化模块与更新模块;还包括渲染模块,所述渲染模块用于将当前比例尺底图缓冲位图与比例尺元素缓冲位图集在屏幕实时显示区域范围内叠加生成用于输出显示的第一内存位图。
与本发明所述Android平台下电子海图引擎的第一技术方案不同的地方在于这里实际上在得到第一内存位图之前使用了当前比例尺底图缓冲位图、最小比例尺底图缓冲位图、比例尺元素缓冲位图集总计三个缓冲池的策略配合缓冲位图区域基于实时显示区域扩展的策略,由于缩放时也仅需做快速的底图插值计算、根据比例尺的比例尺位图集中位图选择操作、根据坐标的叠加运算即可,这些部分运算均为快速算法几乎无人体感受延时,从而同时提高比例缩放与移动缩放的显示速度,避免了大多数情况下移动电子海图以及缩放电子海图时的延时,从而减少在大多数情况下由于人眼观察的停顿时间,机器同时更新避免了大多数使用时无法忍受的闪烁抖动。
在上述第二技术方案的基础上,进一步的,
所述最小比例尺底图缓冲位图初始化模块用于读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的矢量海图元素转换至统一的实时屏幕显示区域坐标系中构成第四有效海图元素集,将第四有效海图元素集用表达库规则拼接绘制成最小比例尺情况下的最小比例尺底图缓冲位图;
所述当前比例尺底图缓冲位图初始化模块用于截取所述最小比例尺底图缓冲位图中处于实时屏幕显示区域中的部分根据当前比例尺信息直接缩放或者插值缩放为当前比例尺底图缓冲位图;
所述位图的插值缩放或直接缩放均为现有技术,通常不需要插值的时候直接缩放即可,插值缩放可以为一次插值、二次插值、样条插值等各种插值方法。
所述比例尺元素缓冲位图集初始化模块用于读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的比例尺相关海图元素转换至统一的实时屏幕显示区域坐标系中构成第五有效海图元素集,将第五有效海图元素集用表达库规则拼接绘制成带有比例尺标记的比例尺元素缓冲位图集;
带有比例尺标记的比例尺元素缓冲位图集,相比以往的内存位图生成只生成当前比例尺下的内存位图表示,现会在每一比例尺相关海图元素均生成各个离散比例尺下的内存位图表示的集合,以便于缩放时避免表达库运算可以直接与底图内存位图按图层优先级与坐标叠加;
所述最小比例尺底图缓冲位图更新模块,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,更新后的最小比例尺底图缓冲位图中处于重叠区域的部分用更新前的最小比例尺底图缓冲位图中对应重叠区域的部分拷贝得到,更新后的最小比例尺底图缓冲位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第六有效海图元素集,将第六有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分,
所述当前比例尺底图缓冲位图更新模块,用于读取更新后的最小比例尺底图缓冲位图,根据实时屏幕显示区域范围及当前比例尺信息将更新后的所述最小比例尺底图缓冲位图插值缩放或者直接缩放生成更新后的当前比例尺底图缓冲位图,
所述比例尺元素缓冲位图集更新模块,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,所述比例尺相关海图元素缓冲位图集中处于重叠区域的部分保持更新前数据不变,更新后的比例尺相关海图元素缓冲位图集中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中查找全部或者部分处于非重叠区域中的比例尺相关海图元素构转换至统一的实时屏幕显示区域坐标系中得到第七有效海图元素集,将第七有效海图元素集用表达库规则对各个比例尺情况下分别重新绘制出内存位图得到比例尺相关海图元素缓冲位图集中处于非重叠区域的部分。
由于海图元素中部分海图元素如海面具有矢量显示特性其显示在不被上层元素覆盖的情况下其显示的像素按比例尺进行缩放,这类海图元素在用表达库规则表达出最小比例尺情况下的内存位图后进行缩放比例尺显示时均可以根据耗时小的插值算法直接得到,速度很快,避免缩放时延,将这部分海图元素记为矢量海图元素,这些矢量海图元素用表达库得到的最小比例尺情况下的插值算法缩放后的内存位图为当前比例尺底图缓冲位图,另一部分海图元素的显示不具备上述矢量显示特性,其显示与否与显示特性是与比例尺相关的,比如在某一比例尺情况下并不显示,另一比例尺情况下显示,而且即使需要显示其显示的方式也不并一定按比例尺缩放,将这部分海图元素记为比例尺相关海图元素,电子海图缩放显示的比例尺为有限的离散值,这里将所有比例尺相关海图元素分别按照表达库规则在各个比例尺情况下表达为相应的内存位图,这些内存位图构成比例尺元素缓冲位图集,所述将当前比例尺底图缓冲位图与比例尺元素缓冲位图集在屏幕实时显示区域范围内叠加生成第一内存位图的叠加过程可以为:在屏幕实时显示区域范围内将各个比例尺元素按照当前比例尺下相应的比例尺元素缓冲位图所处坐标区域去替换当前比例尺底图缓冲位图相应坐标区域的部分,各个比例尺元素之间若有重叠则按照图层优先级顺序进行覆盖从而得到第一内存位图;这里实际上在得到第一内存位图之前使用了当前比例尺底图缓冲位图、最小比例尺底图缓冲位图、比例尺元素缓冲位图集总计三个缓冲池的策略配合缓冲位图区域基于实时显示区域扩展的策略,由于缩放时也仅需做快速的底图插值计算、根据比例尺的比例尺位图集中位图选择操作、根据坐标的叠加运算即可,这些部分运算均为快速算法几乎无人体感受延时,从而同时提高比例缩放与移动缩放的显示速度,避免了大多数情况下移动电子海图以及缩放电子海图时的延时,从而减少在大多数情况下由于人眼观察的停顿时间,机器同时更新避免了大多数使用时无法忍受的闪烁抖动。
在上述第二技术方案的基础上进一步的,根据实时屏幕显示区域设置的所述显示缓冲区域的区域范围为实时屏幕显示区域的范围的9至12倍。将所述实时屏幕显示区域设置的所述显示缓冲区域的区域范围设置为实时屏幕显示区域的范围的9至12倍具体在内存位图实现时是依照实时屏幕显示区域的范围中最小比例尺对应的内存位图进行,因为通常在移动海图区域进行细节查看定位时大多数的使用场景是小范围的拖动,在上下左右方向上很少超过当前屏幕显示区域一个屏幕,即使超过用户也需要停顿一下以辨别是否需要再次移动,这样内存位图9-12倍于实时屏幕显示区域范围的设置满足了任意方向至少一个屏幕范围的无延时移动的要求,在大多数情况下由于人眼观察的停顿时间,机器同时更新避免了大多数使用时无法忍受的闪烁抖动。通常情况下所述实时屏幕显示区域处于所述显示缓冲区域中的相对中部的位置,但是在移动至整幅海图边缘或接近边缘时,情况会有所不同,比如说极端情况下移动至整幅海图的左上角、左下角、右上角、右下角时,所述实时屏幕显示区域处于所述显示缓冲区域中的相对位置为左上、左下、右上、右下,所以所述实时屏幕显示区域处于所述显示缓冲区域中的相对位置由实时屏幕显示区域相对于海图文件库显示的总区域的相对位置决定,具体决定的方式包括如下策略示例,但不仅限于如下策略:
a)在边缘处某方向不足以将实时屏幕显示区域置于显示缓冲区域中间位置时,将实时屏幕显示区域与显示缓冲区域的相对位置向相应方向移动以至于显示缓冲区域不超出海图文件库显示的总区域,其余情况将实时屏幕显示区域固定置于显示缓冲区域中间位置;
b)设置根据实时屏幕显示区域与总区域相对位置的横纵向比例因子,根据横、纵向比例因子来调节实时屏幕显示区域在显示缓冲区域中的位置以保证显示缓冲区域不超出海图文件库显示的总区域。
在第二技术方案的基础上进一步的,还包括海图转换模块,所述海图转换模块用于读取原始海图文件,将读取的原始海图文件按照S57标准的海图元素定义生成海图物标,再将生成的海图物标转换为自定义海图文件格式的自定义海图文件,所述原始海图文件为S57标准海图格式,所述自定义海图文件格式为SENC自定义海图文件格式;
S-57将真实世界定义为特征物标和空间物标,前者描述特征属性,后者描述空间属性。特征物标包括描述特征属性但不包括任何几何形状,而空间物标可以包含位置信息,同时必须包含几何形状。一个物标构成一个记录,一个交换集由多个记录构成,为了方便,又将记录组成文件。因此可以将S57标准海图文件按S57标准可以拆解为若干包含如下信息的(图ID号、图名、南北西东坐标、比例尺、坐标乘数因子、3D 水深乘数因子)海图物标,将这些海图物标再按照SENC自定义海图文件格式组合即可转换为SENC自定义海图文件;读取的海图文件中的原始海图信息来源由包括导航传感仪、陀螺罗经、记程仪、探测仪、GPS/DGPS、RADAR、ARPA、气象仪、气象传真机在内传感装置传送至导航信息接收装置导入终端系统。
所述S57标准海图格式为现有中的一种国际标准定义的一种海图文件格式,转换后的所述SENC自定义海图文件格式分为三部分,具体细节见具体实施方式部分的表1-1至表1-8中所列;
转换后的自定义文件比S57原始文件的大小约小3倍,读入速度约快10倍,减小了海图文件的冗余量,可以满足海量海图在内存中的实时调换。
本发明所述电子海图引擎中所述海图元素的显示信息所在的表达库为S52表达库,所述渲染模块将海图元素集中的信息绘制为位图显示信息的过程采用S52标准符号库。使用配合海图文件格式的标准符号库达到较好的兼容性、显示准确性、稳定性、显示效率。
本发明公开的Android平台下电子海图无时延显示方法的第一技术方案为:包括海图转换步骤、图库调度步骤、内存海图索引步骤、渲染步骤,
所述海图转换步骤包括读取原始海图文件,将读取的原始海图文件按照S57标准的海图元素定义生成海图物标,再将生成的海图物标转换为自定义海图文件格式的自定义海图文件,所述原始海图文件为S57标准海图格式,所述自定义海图文件格式为SENC自定义海图文件格式;
所述图库调度步骤包括获取实时屏幕显示区域信息,根据接收的实时屏幕显示区域信息来计算出海图文件库中当前待加载至内存的第一海图文件集,并根据第一海图文件集更新内存中海图文件;
内存海图库索引步骤包括读取由所述图库调度模块更新至内存中的第一海图文件集的文件头,根据实时屏幕显示区域设置显示缓冲区域,由所述显示缓冲区域确定第一海图文件集中海图文件中待渲染的有效海图元素,所有有效海图元素构成第一有效海图元素集,根据读取的所述第一海图文件集的头文件对所述第一有效海图元素集建立索引文件;
所述渲染步骤包括拷贝所述缓冲内存位图中处于实时屏幕显示区域内的部分生成用于输出显示的第一内存位图,所述渲染步骤还包括如下步骤,
缓冲内存位图的初始化步骤,读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的海图元素转换至统一的实时屏幕显示区域坐标系中得到第二有效海图元素集,将第二有效海图元素集用表达库规则拼接绘制成缓冲内存位图;
缓冲内存位图的更新的步骤,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的缓冲内存位图的区域范围比对得到重叠区域与非重叠区域,更新后的缓冲内存位图中处于重叠区域的部分用更新前的缓冲内存位图中对应重叠区域的部分拷贝得到,更新后的缓冲内存位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第三有效海图元素集,将第三有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分。
在上述Android平台下电子海图无时延显示方法的第一技术方案的基础上,进一步的,根据实时屏幕显示区域设置的所述显示缓冲区域的区域范围为实时屏幕显示区域的范围的9至12倍。
本发明公开的Android平台下电子海图无时延显示方法的第二技术方案为:包括三缓冲池渲染步骤,
所述三缓冲池渲染步骤包括将当前比例尺底图缓冲位图与比例尺元素缓冲位图集在屏幕实时显示区域范围内叠加生成用于输出显示的第一内存位图,还包括如下当前比例尺底图缓冲位图初始化步骤、比例尺元素缓冲位图集初始化步骤、最小比例尺底图缓冲位图初始化步骤、当前比例尺底图缓冲位图更新步骤、比例尺元素缓冲位图集更新步骤、最小比例尺底图缓冲位图更新步骤,
由于海图元素中部分海图元素如海面具有矢量显示特性其显示在不被上层元素覆盖的情况下其显示的像素按比例尺进行缩放,这类海图元素在用表达库规则表达出最小比例尺情况下的内存位图后进行缩放比例尺显示时均可以根据耗时小的插值算法直接得到,速度很快,避免缩放时延,将这部分海图元素记为矢量海图元素,这些矢量海图元素用表达库得到的最小比例尺情况下的 插值算法缩放后的内存位图为当前比例尺底图缓冲位图,另一部分海图元素的显示不具备上述矢量显示特性,其显示与否与显示特性是与比例尺相关的,比如在某一比例尺情况下并不显示,另一比例尺情况下显示,而且即使需要显示其显示的方式也不并一定按比例尺缩放,将这部分海图元素记为比例尺相关海图元素,电子海图缩放显示的比例尺为有限的离散值,这里将所有比例尺相关海图元素分别按照表达库规则在各个比例尺情况下表达为相应的内存位图,这些内存位图构成比例尺元素缓冲位图集,所述将当前比例尺底图缓冲位图与比例尺元素缓冲位图集在屏幕实时显示区域范围内叠加生成第一内存位图的叠加过程可以为:在屏幕实时显示区域范围内将各个比例尺元素按照当前比例尺下相应的比例尺元素缓冲位图所处坐标区域去替换当前比例尺底图缓冲位图相应坐标区域的部分,各个比例尺元素之间若有重叠则按照图层优先级顺序进行覆盖从而得到第一内存位图;
所述最小比例尺底图缓冲位图初始化步骤包括读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的矢量海图元素转换至统一的实时屏幕显示区域坐标系中构成第四有效海图元素集,将第四有效海图元素集用表达库规则拼接绘制成最小比例尺情况下的最小比例尺底图缓冲位图;
所述当前比例尺底图缓冲位图初始化步骤包括截取所述最小比例尺底图缓冲位图中处于实时屏幕显示区域中的部分根据当前比例尺信息直接缩放或者插值缩放为当前比例尺底图缓冲位图;
所述位图的插值缩放或直接缩放均为现有技术,通常不需要插值的时候直接缩放即可,插值缩放可以为一次插值、二次插值、样条插值等各种插值方法。
所述比例尺元素缓冲位图集初始化步骤包括读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的比例尺相关海图元素转换至统一的实时屏幕显示区域坐标系中构成第五有效海图元素集,将第五有效海图元素集用表达库规则拼接绘制成带有比例尺标记的比例尺元素缓冲位图集;
带有比例尺标记的比例尺元素缓冲位图集,相比以往的内存位图生成只生成当前比例尺下的内存位图表示,现会在每一比例尺相关海图元素均生成各个离散比例尺下的内存位图表示的集合,以便于缩放时避免表达库运算可以直接与底图内存位图按图层优先级与坐标叠加;
所述最小比例尺底图缓冲位图更新步骤包括读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,更新后的最小比例尺底图缓冲位图中处于重叠区域的部分用更新前的最小比例尺底图缓冲位图中对应重叠区域的部分拷贝得到,更新后的最小比例尺底图缓冲位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第六有效海图元素集,将第六有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分,
所述当前比例尺底图缓冲位图更新步骤包括读取更新后的最小比例尺底图缓冲位图,根据实时屏幕显示区域范围及当前比例尺信息将更新后的所述最小比例尺底图缓冲位图插值缩放或者直接缩放生成更新后的当前比例尺底图缓冲位图,
所述比例尺元素缓冲位图集更新步骤包括读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,所述比例尺相关海图元素缓冲位图集中处于重叠区域的部分保持更新前数据不变,更新后的比例尺相关海图元素缓冲位图集中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中查找全部或者部分处于非重叠区域中的比例尺相关海图元素构转换至统一的实时屏幕显示区域坐标系中得到第七有效海图元素集,将第七有效海图元素集用表达库规则对各个比例尺情况下分别重新绘制出内存位图得到比例尺相关海图元素缓冲位图集中处于非重叠区域的部分。
这里实际上在得到第一内存位图之前使用了当前比例尺底图缓冲位图、最小比例尺底图缓冲位图、比例尺元素缓冲位图集总计三个缓冲池的策略配合缓冲位图区域基于实时显示区域扩展的策略,由于缩放时也仅需做快速的底图插值计算、根据比例尺的比例尺位图集中位图选择操作、根据坐标的叠加运算即可,这些部分运算均为快速算法几乎无人体感受延时,从而同时提高比例缩放与移动缩放的显示速度,避免了大多数情况下移动电子海图以及缩放电子海图时的延时,从而减少在大多数情况下由于人眼观察的停顿时间,机器同时更新避免了大多数使用时无法忍受的闪烁抖动。
该Android平台下电子海图无时延显示方法结合了Android平台本身固有的系统硬件的特点以及电子海图的显示特性,综合改进了使用时的拖移缩放延时效果,使得在大多数情景下避免了无法忍受的延时、闪烁的情况,而且减少了以往使用标准海图文件占用存储空间大,处理效率低的问题,成倍的降低内存占用率与提高了通用处理效率。
附图说明
图1是整个电子海图引擎在整个电子海图系统中的位置示意图;
图2是本发明所述Android平台下电子海图引擎的框架图示意图;
图3是本发明所述Android平台下电子海图引擎中海图绘制与显示简要流程图;
图4为本发明所述Android平台下电子海图无时延显示方法的三缓冲渲染的数据流向示意图。
具体实施方式
下面结合实施例及附图,对本发明作进一步地的详细说明,但本发明的实施方式不限于此。
本发明公开的Android平台下电子海图引擎的实施例1为:
包括海图转换模块、图库管理模块、内存海图库管理模块、渲染模块;其中图1是整个电子海图引擎在整个电子海图系统中的位置示意图,图2是电子海图引擎框架图,整个电子海图系统中的基于电子海图引擎的应用即是在电子海图引擎的所提供的API接口以及人机界面模块提供的API接口的基础上进行开发的,其中用户参数由整个电子海图系统中包括人机界面、平台图形窗口系统、操作系统以及平台图形库在内的其他模块接收用户信息后处理得到传递至电子海图引擎中,图中的轮廓计算、坐标计算、导航管理模块均为现有海图引擎中的常规技术手段。
所述海图转换模块用于读取原始海图文件,将读取的原始海图文件按照S57标准的海图元素定义生成海图物标,再将生成的海图物标转换为自定义海图文件格式的自定义海图文件,所述原始海图文件为S57标准海图格式,所述自定义海图文件格式为SENC自定义海图文件格式;S-57将真实世界定义为特征物标和空间物标,前者描述特征属性,后者描述空间属性。特征物标包括描述特征属性但不包括任何几何形状,而空间物标可以包含位置信息,同时必须包含几何形状。一个物标构成一个记录,一个交换集由多个记录构成,为了方便,又将记录组成文件。因此可以将S57标准海图文件按S57标准可以拆解为若干包含如下信息的(图ID号、图名、南北西东坐标、比例尺、坐标乘数因子、3D 水深乘数因子)海图物标,将这些海图物标再按照SENC自定义海图文件格式组合即可转换为SENC自定义海图文件;读取的海图文件中的原始海图信息来源由包括导航传感仪、陀螺罗经、记程仪、探测仪、GPS/DGPS、RADAR、ARPA、气象仪、气象传真机在内传感装置传送至导航信息接收装置导入终端系统。
所述S57标准海图格式为现有中的一种国际标准定义的一种海图文件格式,转换后的所述SENC自定义海图文件格式分为三部分,海图格式第一部分如下表1-1所示:
表1-1 头信息
第一部分大小固定为200字节。
第二部分是海图元素信息,海图中包含多个海图元素,一个海图元素信息如表1-2所示:
表1-2 几何信息
表1-3 单个孤立点(非水深)
表1-4 单个连接点
表1-5 单个水深
表1-6 单条边
。
第三部分如表1-5所示:
表1-7 海图元素的内容
一条属性如表1-8所示:
表1-8
转换后的自定义文件比S57原始文件的大小约小3倍,读入速度约快10倍,减小了海图文件的冗余量,可以满足海量海图在内存中的实时调换。
所述图库管理模块,包括海图文件库、海图文件管理模块、图库调度模块:所述海图文件库用于存储SENC自定义海图文件格式的海图文件,
所述海图文件管理模块用于管理海图文件库,包括读取所述海图转换模块转换输出的自定义海图文件并添加至所述海图文件库、从所述海图文件库中卸载海图文件、保存海图数据库、从所述海图数据库中读取海图文件,
所述海图文件库的采用数据库实现,包括各种关系型如Oracle、DB2、Microsoft SQL Server、Microsoft Access、MySQL等,也可以采用非关系型数据库如NoSQL等,也可以仅仅采用链表、哈希、图、树等常用数据结构进行存储。所述海图文件管理模块的管理功能使用现有数据库的增删改查等基本功能可以很容易实现,海图文件库的保存可存储于各种例如ROM、RAM、SD卡、FLASH或者其他的手机可读介质。
所述图库调度模块用于获取实时的屏幕显示区域信息,根据接收的实时屏幕显示区域信息来计算出当前待加载至内存的第一海图文件集,并根据第一海图文件集更新内存中海图文件;
实时的屏幕显示区域信息由系统中人机界面模块根据实时操作进行确定,包括待显示的海图坐标区域信息、比例尺信息等,第一海图文件集的确定方法可以为根据实时屏幕显示区域的坐标信息判断落入或部分落入该区域的海图文件为第一海图文件集中的海图文件,也可以为根据实时屏幕显示区域扩展而成的屏幕显示扩展区域判断落入或部分落入该区域的海图文件为第一海图文件集中的海图文件。海图文件所包含的区域范围可以通过对海图文件头区中的数据项进行计算得到。
内存海图库管理模块,用于读取由所述图库调度模块更新至内存中的第一海图文件集的文件头,根据实时屏幕显示区域设置显示缓冲区域,由所述显示缓冲区域确定第一海图文件集中海图文件中待渲染的有效海图元素,所有有效海图元素构成第一有效海图元素集,根据读取的所述第一海图文件集的头文件对所述第一有效海图元素集建立索引文件;
索引文件由海图文件文件头中的基本要素值得到,所述建立的索引文件以结构体的方式存储,结构体要素包括:图ID号、图名、由最小纬度最小经度最大纬度最大经度表示的图幅范围确定的南北西东坐标、比例尺、坐标乘数因子、3D 水深乘数因子;
所设置的显示缓冲区域可以与屏幕显示区域大小一致,也可以为包含屏幕显示区域在内的扩展区域;所述海图元素为标准表达库中的概念,根据海图元素中的信息即可由表达库规则计算出可渲染的待显示元素,所述第一有效海图元素集全部由表达库规则表示即可还原出显示缓冲区域内的内存位图。
所述渲染模块用于拷贝所述缓冲内存位图中处于实时屏幕显示区域内的部分生成用于输出显示的第一内存位图,所述渲染模块还包括如下缓冲内存位图初始化模块与缓冲内存位图的更新模块:
(1)、缓冲内存位图的初始化模块,用于读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的海图元素转换至统一的实时屏幕显示区域坐标系中得到第二有效海图元素集,将第二有效海图元素集用表达库规则拼接绘制成缓冲内存位图;
(2)、缓冲内存位图的更新模块,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的缓冲内存位图的区域范围比对得到重叠区域与非重叠区域,更新后的缓冲内存位图中处于重叠区域的部分用更新前的缓冲内存位图中对应重叠区域的部分拷贝得到,更新后的缓冲内存位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第三有效海图元素集,将第三有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分。
内存位图为直接用于输出显示的数据文件,由于第一有效海图元素集包含的海图元素有可能来自于不同海图文件中,而不同的海图文件的坐标系不统一则不能进行直接的拼接绘制,所以需要在拼接绘制前的将处于不同海图文件中的海图元素转换至统一的坐标系中,实际实行可以直接转换至屏幕显示区域坐标系,也可以通过先转换至临时的统一坐标系后进行绘制,再将绘制好的内存位图统一转换至屏幕显示区域坐标系,具体的坐标系转换方法为现有技术,本领域技术人员很容易实现,从而实现多幅海图的无缝拼接。
由于第一有效海图元素集所表达的区域范围为根据实时屏幕显示区域设置的显示缓冲区域,将显示缓冲区域设置得大于实时屏幕显示区域,则更新实时屏幕显示区域时,其处于更新前后显示缓冲区域的重叠部分时仅需等待对缓冲显示区域的重叠部分的拷贝即可,省去了等待大耗时的对有效海图集根据表达库规则转换的运算时间,在Android终端上处理器运算速度等硬件运算资源限制较严重时,仍可以保证对海图的无延迟显示,避免了由时延引起的另用户无法忍受的屏幕闪烁和抖动,而且海图的移动也更为顺畅。
所述对海图元素根据表达库规则进行拼接绘制过程中所用的表达库为标准表达库,这里具体地使用了S52表达库。
所述Android平台下电子海图引擎的JNI从Android系统底层的skia图形引擎库调用C++绘制接口以便于保证兼容性以及提高绘制速率。(这里如果调用的流程有相对于常规skia图形引擎调用的改进之处,比如针对Android或者电子海图引擎平台的改进之处,阐述具体改进流程、原理、效果可单独撰写权利要求)。
在实施例1的基础上,进一步的,根据实时屏幕显示区域设置的所述显示缓冲区域的区域范围为实时屏幕显示区域的范围的9至12倍。
将所述实时屏幕显示区域设置的所述显示缓冲区域的区域范围设置为实时屏幕显示区域的范围的9至12倍具体在内存位图实现时是依照实时屏幕显示区域的范围中最小比例尺对应的内存位图进行,因为通常在移动海图区域进行细节查看定位时大多数的使用场景是小范围的拖动,在上下左右方向上很少超过当前屏幕显示区域一个屏幕,即使超过用户也需要停顿一下以辨别是否需要再次移动,这样内存位图9-12倍于实时屏幕显示区域范围的设置满足了任意方向至少一个屏幕范围的无延时移动的要求,在大多数情况下由于人眼观察的停顿时间,机器同时更新避免了大多数使用时无法忍受的闪烁抖动。通常情况下所述实时屏幕显示区域处于所述显示缓冲区域中的相对中部的位置,但是在移动至整幅海图边缘或接近边缘时,情况会有所不同,比如说极端情况下移动至整幅海图的左上角、左下角、右上角、右下角时,所述实时屏幕显示区域处于所述显示缓冲区域中的相对位置为左上、左下、右上、右下,所以所述实时屏幕显示区域处于所述显示缓冲区域中的相对位置由实时屏幕显示区域相对于海图文件库显示的总区域的相对位置决定,具体决定的方式包括如下策略示例,但不仅限于如下策略:
a)在边缘处某方向不足以将实时屏幕显示区域置于显示缓冲区域中间位置时,将实时屏幕显示区域与显示缓冲区域的相对位置向相应方向移动以至于显示缓冲区域不超出海图文件库显示的总区域,其余情况将实时屏幕显示区域固定置于显示缓冲区域中间位置;
b)设置根据实时屏幕显示区域与总区域相对位置的横纵向比例因子,根据横、纵向比例因子来调节实时屏幕显示区域在显示缓冲区域中的位置以保证显示缓冲区域不超出海图文件库显示的总区域。
在实施例1的基础上作如下变换得到实施例2,将实施例1中的所述渲染模块可替换为如下渲染模块,用于将当前比例尺底图缓冲位图与比例尺元素缓冲位图集在屏幕实时显示区域范围内叠加生成用于输出显示的第一内存位图,还包括当前比例尺底图缓冲位图初始化模块、比例尺元素缓冲位图集初始化模块、最小比例尺底图缓冲位图初始化模块、当前比例尺底图缓冲位图更新模块、比例尺元素缓冲位图集更新模块、最小比例尺底图缓冲位图更新模块,
所述最小比例尺底图缓冲位图初始化模块用于读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的矢量海图元素转换至统一的实时屏幕显示区域坐标系中构成第四有效海图元素集,将第四有效海图元素集用表达库规则拼接绘制成最小比例尺情况下的最小比例尺底图缓冲位图;
所述当前比例尺底图缓冲位图初始化模块用于截取所述最小比例尺底图缓冲位图中处于实时屏幕显示区域中的部分根据当前比例尺信息直接缩放或者插值缩放为当前比例尺底图缓冲位图;
所述位图的插值缩放或直接缩放均为现有技术,通常不需要插值的时候直接缩放即可,插值缩放可以为一次插值、二次插值、样条插值等各种插值方法。
所述比例尺元素缓冲位图集初始化模块用于读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的比例尺相关海图元素转换至统一的实时屏幕显示区域坐标系中构成第五有效海图元素集,将第五有效海图元素集用表达库规则拼接绘制成带有比例尺标记的比例尺元素缓冲位图集;
带有比例尺标记的比例尺元素缓冲位图集,相比以往的内存位图生成只生成当前比例尺下的内存位图表示,现会在每一比例尺相关海图元素均生成各个离散比例尺下的内存位图表示的集合,以便于缩放时避免表达库运算可以直接与底图内存位图按图层优先级与坐标叠加;
所述最小比例尺底图缓冲位图更新模块,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,更新后的最小比例尺底图缓冲位图中处于重叠区域的部分用更新前的最小比例尺底图缓冲位图中对应重叠区域的部分拷贝得到,更新后的最小比例尺底图缓冲位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第六有效海图元素集,将第六有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分,
所述当前比例尺底图缓冲位图更新模块,用于读取更新后的最小比例尺底图缓冲位图,根据实时屏幕显示区域范围及当前比例尺信息将更新后的所述最小比例尺底图缓冲位图插值缩放或者直接缩放生成更新后的当前比例尺底图缓冲位图,
所述比例尺元素缓冲位图集更新模块,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,所述比例尺相关海图元素缓冲位图集中处于重叠区域的部分保持更新前数据不变,更新后的比例尺相关海图元素缓冲位图集中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中查找全部或者部分处于非重叠区域中的比例尺相关海图元素构转换至统一的实时屏幕显示区域坐标系中得到第七有效海图元素集,将第七有效海图元素集用表达库规则对各个比例尺情况下分别重新绘制出内存位图得到比例尺相关海图元素缓冲位图集中处于非重叠区域的部分。
由于海图元素中部分海图元素如海面具有矢量显示特性其显示在不被上层元素覆盖的情况下其显示的像素按比例尺进行缩放,这类海图元素在用表达库规则表达出最小比例尺情况下的内存位图后进行缩放比例尺显示时均可以根据耗时小的插值算法直接得到,速度很快,避免缩放时延,将这部分海图元素记为矢量海图元素,这些矢量海图元素用表达库得到的最小比例尺情况下的插值算法缩放后的内存位图为当前比例尺底图缓冲位图,另一部分海图元素的显示不具备上述矢量显示特性,其显示与否与显示特性是与比例尺相关的,比如在某一比例尺情况下并不显示,另一比例尺情况下显示,而且即使需要显示其显示的方式也不并一定按比例尺缩放,将这部分海图元素记为比例尺相关海图元素,电子海图缩放显示的比例尺为有限的离散值,这里将所有比例尺相关海图元素分别按照表达库规则在各个比例尺情况下表达为相应的内存位图,这些内存位图构成比例尺元素缓冲位图集,所述将当前比例尺底图缓冲位图与比例尺元素缓冲位图集在屏幕实时显示区域范围内叠加生成第一内存位图的叠加过程可以为:在屏幕实时显示区域范围内将各个比例尺元素按照当前比例尺下相应的比例尺元素缓冲位图所处坐标区域去替换当前比例尺底图缓冲位图相应坐标区域的部分,各个比例尺元素之间若有重叠则按照图层优先级顺序进行覆盖从而得到第一内存位图;这里实际上在得到第一内存位图之前使用了当前比例尺底图缓冲位图、最小比例尺底图缓冲位图、比例尺元素缓冲位图集总计三个缓冲池的策略配合缓冲位图区域基于实时显示区域扩展的策略,由于缩放时也仅需做快速的底图插值计算、根据比例尺的比例尺位图集中位图选择操作、根据坐标的叠加运算即可,这些部分运算均为快速算法几乎无人体感受延时,从而同时提高比例缩放与移动缩放的显示速度,避免了大多数情况下移动电子海图以及缩放电子海图时的延时,从而减少在大多数情况下由于人眼观察的停顿时间,机器同时更新避免了大多数使用时无法忍受的闪烁抖动。
在第实施例2的基础上进一步的改进,根据实时屏幕显示区域设置的所述显示缓冲区域的区域范围为实时屏幕显示区域的范围的9至12倍。将所述实时屏幕显示区域设置的所述显示缓冲区域的区域范围设置为实时屏幕显示区域的范围的9至12倍具体在内存位图实现时是依照实时屏幕显示区域的范围中最小比例尺对应的内存位图进行,因为通常在移动海图区域进行细节查看定位时大多数的使用场景是小范围的拖动,在上下左右方向上很少超过当前屏幕显示区域一个屏幕,即使超过用户也需要停顿一下以辨别是否需要再次移动,这样内存位图9-12倍于实时屏幕显示区域范围的设置满足了任意方向至少一个屏幕范围的无延时移动的要求,在大多数情况下由于人眼观察的停顿时间,机器同时更新避免了大多数使用时无法忍受的闪烁抖动。通常情况下所述实时屏幕显示区域处于所述显示缓冲区域中的相对中部的位置,但是在移动至整幅海图边缘或接近边缘时,情况会有所不同,比如说极端情况下移动至整幅海图的左上角、左下角、右上角、右下角时,所述实时屏幕显示区域处于所述显示缓冲区域中的相对位置为左上、左下、右上、右下,所以所述实时屏幕显示区域处于所述显示缓冲区域中的相对位置由实时屏幕显示区域相对于海图文件库显示的总区域的相对位置决定,具体决定的方式包括如下策略示例,但不仅限于如下策略:
a)在边缘处某方向不足以将实时屏幕显示区域置于显示缓冲区域中间位置时,将实时屏幕显示区域与显示缓冲区域的相对位置向相应方向移动以至于显示缓冲区域不超出海图文件库显示的总区域,其余情况将实时屏幕显示区域固定置于显示缓冲区域中间位置;
b)设置根据实时屏幕显示区域与总区域相对位置的横纵向比例因子,根据横、纵向比例因子来调节实时屏幕显示区域在显示缓冲区域中的位置以保证显示缓冲区域不超出海图文件库显示的总区域。
上述实施例1、2中所述海图元素的显示信息所在的表达库为S52表达库,所述渲染模块将海图元素集中的信息绘制为位图显示信息的过程采用S52标准符号库。使用配合海图文件格式的标准符号库达到较好的兼容性、显示准确性、稳定性、显示效率。
本发明公开的Android平台下电子海图无时延显示方法的实施例1为:
包括海图转换步骤、图库调度步骤、内存海图索引步骤、渲染步骤,
所述海图转换步骤包括读取原始海图文件,将读取的原始海图文件按照S57标准的海图元素定义生成海图物标,再将生成的海图物标转换为自定义海图文件格式的自定义海图文件,所述原始海图文件为S57标准海图格式,所述自定义海图文件格式为SENC自定义海图文件格式;
所述图库调度步骤包括获取实时屏幕显示区域信息,根据接收的实时屏幕显示区域信息来计算出海图文件库中当前待加载至内存的第一海图文件集,并根据第一海图文件集更新内存中海图文件;
内存海图库索引步骤包括读取由所述图库调度模块更新至内存中的第一海图文件集的文件头,根据实时屏幕显示区域设置显示缓冲区域,由所述显示缓冲区域确定第一海图文件集中海图文件中待渲染的有效海图元素,所有有效海图元素构成第一有效海图元素集,根据读取的所述第一海图文件集的头文件对所述第一有效海图元素集建立索引文件;
所述渲染步骤包括拷贝所述缓冲内存位图中处于实时屏幕显示区域内的部分生成用于输出显示的第一内存位图,所述渲染步骤还包括如下步骤,
缓冲内存位图的初始化步骤,读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的海图元素转换至统一的实时屏幕显示区域坐标系中得到第二有效海图元素集,将第二有效海图元素集用表达库规则拼接绘制成缓冲内存位图;
缓冲内存位图的更新的步骤,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的缓冲内存位图的区域范围比对得到重叠区域与非重叠区域,更新后的缓冲内存位图中处于重叠区域的部分用更新前的缓冲内存位图中对应重叠区域的部分拷贝得到,更新后的缓冲内存位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第三有效海图元素集,将第三有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分。
在上述Android平台下电子海图无时延显示方法的实施例1的基础上,进一步的,根据实时屏幕显示区域设置的所述显示缓冲区域的区域范围为实时屏幕显示区域的范围的9至12倍。
本发明公开的Android平台下电子海图无时延显示方法的实施例2为:
包括海图转换步骤、图库调度步骤、内存海图索引步骤均与上述实施例1中
相应步骤功能相同或类似,主要改进点在于渲染步骤中使用了三缓冲池渲染步骤的策略,图4为本发明所述Android平台下电子海图无时延显示方法的三缓冲渲染的数据流向示意图,
所述三缓冲池渲染步骤包括将当前比例尺底图缓冲位图与比例尺元素缓冲位图集在屏幕实时显示区域范围内叠加生成用于输出显示的第一内存位图,还包括如下当前比例尺底图缓冲位图初始化步骤、比例尺元素缓冲位图集初始化步骤、最小比例尺底图缓冲位图初始化步骤、当前比例尺底图缓冲位图更新步骤、比例尺元素缓冲位图集更新步骤、最小比例尺底图缓冲位图更新步骤,
由于海图元素中部分海图元素如海面具有矢量显示特性其显示在不被上层元素覆盖的情况下其显示的像素按比例尺进行缩放,这类海图元素在用表达库规则表达出最小比例尺情况下的内存位图后进行缩放比例尺显示时均可以根据耗时小的插值算法直接得到,速度很快,避免缩放时延,将这部分海图元素记为矢量海图元素,这些矢量海图元素用表达库得到的最小比例尺情况下的 插值算法缩放后的内存位图为当前比例尺底图缓冲位图,另一部分海图元素的显示不具备上述矢量显示特性,其显示与否与显示特性是与比例尺相关的,比如在某一比例尺情况下并不显示,另一比例尺情况下显示,而且即使需要显示其显示的方式也不并一定按比例尺缩放,将这部分海图元素记为比例尺相关海图元素,电子海图缩放显示的比例尺为有限的离散值,这里将所有比例尺相关海图元素分别按照表达库规则在各个比例尺情况下表达为相应的内存位图,这些内存位图构成比例尺元素缓冲位图集,所述将当前比例尺底图缓冲位图与比例尺元素缓冲位图集在屏幕实时显示区域范围内叠加生成第一内存位图的叠加过程可以为:在屏幕实时显示区域范围内将各个比例尺元素按照当前比例尺下相应的比例尺元素缓冲位图所处坐标区域去替换当前比例尺底图缓冲位图相应坐标区域的部分,各个比例尺元素之间若有重叠则按照图层优先级顺序进行覆盖从而得到第一内存位图;
所述最小比例尺底图缓冲位图初始化步骤包括读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的矢量海图元素转换至统一的实时屏幕显示区域坐标系中构成第四有效海图元素集,将第四有效海图元素集用表达库规则拼接绘制成最小比例尺情况下的最小比例尺底图缓冲位图;
所述当前比例尺底图缓冲位图初始化步骤包括截取所述最小比例尺底图缓冲位图中处于实时屏幕显示区域中的部分根据当前比例尺信息直接缩放或者插值缩放为当前比例尺底图缓冲位图;
所述位图的插值缩放或直接缩放均为现有技术,通常不需要插值的时候直接缩放即可,插值缩放可以为一次插值、二次插值、样条插值等各种插值方法。
所述比例尺元素缓冲位图集初始化步骤包括读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的比例尺相关海图元素转换至统一的实时屏幕显示区域坐标系中构成第五有效海图元素集,将第五有效海图元素集用表达库规则拼接绘制成带有比例尺标记的比例尺元素缓冲位图集;
带有比例尺标记的比例尺元素缓冲位图集,相比以往的内存位图生成只生成当前比例尺下的内存位图表示,现会在每一比例尺相关海图元素均生成各个离散比例尺下的内存位图表示的集合,以便于缩放时避免表达库运算可以直接与底图内存位图按图层优先级与坐标叠加;
所述最小比例尺底图缓冲位图更新步骤包括读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,更新后的最小比例尺底图缓冲位图中处于重叠区域的部分用更新前的最小比例尺底图缓冲位图中对应重叠区域的部分拷贝得到,更新后的最小比例尺底图缓冲位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第六有效海图元素集,将第六有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分,
所述当前比例尺底图缓冲位图更新步骤包括读取更新后的最小比例尺底图缓冲位图,根据实时屏幕显示区域范围及当前比例尺信息将更新后的所述最小比例尺底图缓冲位图插值缩放或者直接缩放生成更新后的当前比例尺底图缓冲位图,
所述比例尺元素缓冲位图集更新步骤包括读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,所述比例尺相关海图元素缓冲位图集中处于重叠区域的部分保持更新前数据不变,更新后的比例尺相关海图元素缓冲位图集中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中查找全部或者部分处于非重叠区域中的比例尺相关海图元素构转换至统一的实时屏幕显示区域坐标系中得到第七有效海图元素集,将第七有效海图元素集用表达库规则对各个比例尺情况下分别重新绘制出内存位图得到比例尺相关海图元素缓冲位图集中处于非重叠区域的部分。
这里实际上在得到第一内存位图之前使用了当前比例尺底图缓冲位图、最小比例尺底图缓冲位图、比例尺元素缓冲位图集总计三个缓冲池的策略配合缓冲位图区域基于实时显示区域扩展的策略,由于缩放时也仅需做快速的底图插值计算、根据比例尺的比例尺位图集中位图选择操作、根据坐标的叠加运算即可,这些部分运算均为快速算法几乎无人体感受延时,从而同时提高比例缩放与移动缩放的显示速度,避免了大多数情况下移动电子海图以及缩放电子海图时的延时,从而减少在大多数情况下由于人眼观察的停顿时间,机器同时更新避免了大多数使用时无法忍受的闪烁抖动。
该Android平台下电子海图无时延显示方法结合了Android平台本身固有的系统硬件的特点以及电子海图的显示特性,综合改进了使用时的拖移缩放延时效果,使得在大多数情景下避免了无法忍受的延时、闪烁的情况,而且减少了以往使用标准海图文件占用存储空间大,处理效率低的问题,成倍的降低内存占用率与提高了通用处理效率。
采用前文所述的为本发明的各个优选实施例,各个优选实施例中的优选实施方式如果不是明显自相矛盾或以某一优选实施方式为前提,各个优选实施方式都可以任意叠加组合使用,所述实施例以及实施例中的具体参数仅是为了清楚表述发明人的发明验证过程,并非用以限制本发明的专利保护范围,本发明的专利保护范围仍然以其权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
如上所述,可较好的实现本发明。
Claims (10)
1.一种Android平台下电子海图引擎,包括
图库管理模块、内存海图库管理模块;
所述图库管理模块,包括海图文件库、海图文件管理模块、图库调度模块,
所述海图文件库用于存储海图文件,
所述海图文件管理模块用于管理所述海图文件库,
所述图库调度模块用于获取实时的屏幕显示区域信息,根据接收的实时屏幕显示区域信息更新内存中第一海图文件集,
内存海图库管理模块,用于读取由所述图库调度模块更新至内存中的所述第一海图文件集、实时屏幕显示区域信息,根据实时屏幕显示区域设置显示缓冲区域,由所述显示缓冲区域从第一海图文件集中确定第一有效海图元素集,对所述第一有效海图元素集建立索引文件;
其特征在于, 还包括渲染模块;
所述渲染模块用于拷贝缓冲内存位图中处于实时屏幕显示区域内的部分生成用于输出显示的第一内存位图,所述渲染模块还包括如下缓冲内存位图初始化模块与缓冲内存位图的更新模块:
(1)、缓冲内存位图的初始化模块,用于读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的海图元素转换至统一的实时屏幕显示区域坐标系中得到第二有效海图元素集,将第二有效海图元素集用表达库规则拼接绘制成缓冲内存位图;
(2)、缓冲内存位图的更新模块,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的缓冲内存位图的区域范围比对得到重叠区域与非重叠区域,更新后的缓冲内存位图中处于重叠区域的部分用更新前的缓冲内存位图中对应重叠区域的部分拷贝得到,更新后的缓冲内存位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第三有效海图元素集,将第三有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分。
2.如权利要求1所述Android平台下电子海图引擎,其特征还在于,根据实时屏幕显示区域设置的所述显示缓冲区域的区域范围为实时屏幕显示区域的范围的9至12倍。
3.如权利要求1中所述Android平台下电子海图引擎,其特征还在于,还包括海图转换模块,所述海图转换模块用于读取原始海图文件,将读取的原始海图文件转换为SENC自定义海图文件格式的自定义海图文件。
4.一种Android平台下电子海图引擎,其特征在于,包括用于生成当前比例尺底图缓冲位图的当前比例尺底图缓冲位图初始化模块与更新模块、用于生成比例尺元素缓冲位图集的比例尺元素缓冲位图集初始化模块与更新模块、用于生成最小比例尺底图缓冲位图的最小比例尺底图缓冲位图初始化模块与更新模块;还包括渲染模块,所述渲染模块用于将当前比例尺底图缓冲位图与比例尺元素缓冲位图集在屏幕实时显示区域范围内叠加生成用于输出显示的第一内存位图。
5.如权利要求4所述Android平台下电子海图引擎,其特征还在于,
所述最小比例尺底图缓冲位图初始化模块用于读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的矢量海图元素转换至统一的实时屏幕显示区域坐标系中构成第四有效海图元素集,将第四有效海图元素集用表达库规则拼接绘制成最小比例尺情况下的最小比例尺底图缓冲位图;
所述当前比例尺底图缓冲位图初始化模块用于截取所述最小比例尺底图缓冲位图中处于实时屏幕显示区域中的部分根据当前比例尺信息直接缩放或者插值缩放为当前比例尺底图缓冲位图;
所述比例尺元素缓冲位图集初始化模块用于读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的比例尺相关海图元素转换至统一的实时屏幕显示区域坐标系中构成第五有效海图元素集,将第五有效海图元素集用表达库规则拼接绘制成带有比例尺标记的比例尺元素缓冲位图集;
所述最小比例尺底图缓冲位图更新模块,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,更新后的最小比例尺底图缓冲位图中处于重叠区域的部分用更新前的最小比例尺底图缓冲位图中对应重叠区域的部分拷贝得到,更新后的最小比例尺底图缓冲位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第六有效海图元素集,将第六有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分,
所述当前比例尺底图缓冲位图更新模块,用于读取更新后的最小比例尺底图缓冲位图,根据实时屏幕显示区域范围及当前比例尺信息将更新后的所述最小比例尺底图缓冲位图插值缩放或者直接缩放生成更新后的当前比例尺底图缓冲位图,
所述比例尺元素缓冲位图集更新模块,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,所述比例尺相关海图元素缓冲位图集中处于重叠区域的部分保持更新前数据不变,更新后的比例尺相关海图元素缓冲位图集中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中查找全部或者部分处于非重叠区域中的比例尺相关海图元素构转换至统一的实时屏幕显示区域坐标系中得到第七有效海图元素集,将第七有效海图元素集用表达库规则对各个比例尺情况下分别重新绘制出内存位图得到比例尺相关海图元素缓冲位图集中处于非重叠区域的部分。
6.如权利要求4所述Android平台下电子海图引擎,其特征还在于,根据实时屏幕显示区域设置的所述显示缓冲区域的区域范围为实时屏幕显示区域的范围的9至12倍。
7.如权利要求4所述Android平台下电子海图引擎,其特征还在于,还包括海图转换模块,所述海图转换模块用于读取原始海图文件,将读取的原始海图文件转换为SENC自定义海图文件格式的自定义海图文件。
8.一种Android平台下电子海图无时延显示方法,包括
图库调度步骤、内存海图索引步骤,
所述图库调度步骤包括获取实时屏幕显示区域信息,根据接收的实时屏幕显示区域信息来计算出海图文件库中当前待加载至内存的第一海图文件集,并根据第一海图文件集更新内存中海图文件;
内存海图库索引步骤包括读取由所述图库调度模块更新至内存中的第一海图文件集的文件头,根据实时屏幕显示区域设置显示缓冲区域,由所述显示缓冲区域确定第一海图文件集中海图文件中待渲染的有效海图元素,所有有效海图元素构成第一有效海图元素集,根据读取的所述第一海图文件集的头文件对所述第一有效海图元素集建立索引文件;
其特征在于,
还包括海图转换步骤、渲染步骤,
所述海图转换步骤包括读取原始海图文件,将读取的原始海图文件转换为SENC自定义海图文件格式的自定义海图文件;
所述渲染步骤包括拷贝所述缓冲内存位图中处于实时屏幕显示区域内的部分生成用于输出显示的第一内存位图,所述渲染步骤还包括如下步骤,
缓冲内存位图的初始化步骤,读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的海图元素转换至统一的实时屏幕显示区域坐标系中得到第二有效海图元素集,将第二有效海图元素集用表达库规则拼接绘制成缓冲内存位图;
缓冲内存位图的更新的步骤,用于读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的缓冲内存位图的区域范围比对得到重叠区域与非重叠区域,更新后的缓冲内存位图中处于重叠区域的部分用更新前的缓冲内存位图中对应重叠区域的部分拷贝得到,更新后的缓冲内存位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第三有效海图元素集,将第三有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分。
9.如权利要求6所述Android平台下电子海图无时延显示方法,其特征在于,根据实时屏幕显示区域设置的所述显示缓冲区域的区域范围为实时屏幕显示区域的范围的9至12倍。
10.一种Android平台下电子海图无时延显示方法,其特征在于,包括三缓冲池渲染步骤,
所述三缓冲池渲染步骤包括将当前比例尺底图缓冲位图与比例尺元素缓冲位图集在屏幕实时显示区域范围内叠加生成用于输出显示的第一内存位图,还包括如下当前比例尺底图缓冲位图初始化步骤、比例尺元素缓冲位图集初始化步骤、最小比例尺底图缓冲位图初始化步骤、当前比例尺底图缓冲位图更新步骤、比例尺元素缓冲位图集更新步骤、最小比例尺底图缓冲位图更新步骤,
所述最小比例尺底图缓冲位图初始化步骤包括读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的矢量海图元素转换至统一的实时屏幕显示区域坐标系中构成第四有效海图元素集,将第四有效海图元素集用表达库规则拼接绘制成最小比例尺情况下的最小比例尺底图缓冲位图;
所述当前比例尺底图缓冲位图初始化步骤包括截取所述最小比例尺底图缓冲位图中处于实时屏幕显示区域中的部分根据当前比例尺信息直接缩放或者插值缩放为当前比例尺底图缓冲位图;
所述比例尺元素缓冲位图集初始化步骤包括读取内存海图库管理模块生成的索引文件,根据索引文件中的数据信息将第一有效海图元素集中的比例尺相关海图元素转换至统一的实时屏幕显示区域坐标系中构成第五有效海图元素集,将第五有效海图元素集用表达库规则拼接绘制成带有比例尺标记的比例尺元素缓冲位图集;
所述最小比例尺底图缓冲位图更新步骤包括读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,更新后的最小比例尺底图缓冲位图中处于重叠区域的部分用更新前的最小比例尺底图缓冲位图中对应重叠区域的部分拷贝得到,更新后的最小比例尺底图缓冲位图中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中找到处于非重叠区域的海图元素转换至统一的实时屏幕显示区域坐标系中构成第六有效海图元素集,将第六有效海图元素集用表达库规则拼接绘制出缓冲内存位图中处于非重叠区域的部分,
所述当前比例尺底图缓冲位图更新步骤包括读取更新后的最小比例尺底图缓冲位图,根据实时屏幕显示区域范围及当前比例尺信息将更新后的所述最小比例尺底图缓冲位图插值缩放或者直接缩放生成更新后的当前比例尺底图缓冲位图,
所述比例尺元素缓冲位图集更新步骤包括读取内存海图库管理模块生成的索引文件,用索引文件中的区域范围与更新前的最小比例尺底图缓冲位图的区域范围比对得到重叠区域与非重叠区域,所述比例尺相关海图元素缓冲位图集中处于重叠区域的部分保持更新前数据不变,更新后的比例尺相关海图元素缓冲位图集中处于非重叠区域的部分根据如下方法得到,所述索引文件从第一有效海图元素集中查找全部或者部分处于非重叠区域中的比例尺相关海图元素构转换至统一的实时屏幕显示区域坐标系中得到第七有效海图元素集,将第七有效海图元素集用表达库规则对各个比例尺情况下分别重新绘制出内存位图得到比例尺相关海图元素缓冲位图集中处于非重叠区域的部分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410402033.9A CN104182498B (zh) | 2014-08-15 | 2014-08-15 | Android平台下电子海图引擎及无时延显示方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410402033.9A CN104182498B (zh) | 2014-08-15 | 2014-08-15 | Android平台下电子海图引擎及无时延显示方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104182498A true CN104182498A (zh) | 2014-12-03 |
CN104182498B CN104182498B (zh) | 2017-06-13 |
Family
ID=51963537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410402033.9A Active CN104182498B (zh) | 2014-08-15 | 2014-08-15 | Android平台下电子海图引擎及无时延显示方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104182498B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778024A (zh) * | 2015-04-23 | 2015-07-15 | 深圳大学 | 一种电子海图显示方法及系统 |
CN106097413A (zh) * | 2016-06-03 | 2016-11-09 | 大连陆海科技股份有限公司 | 多比例尺矢量海图数据的绘制系统及绘制方法 |
CN107402928A (zh) * | 2016-05-20 | 2017-11-28 | 上海画擎信息科技有限公司 | 一种文档渲染方法 |
CN108701335A (zh) * | 2016-11-24 | 2018-10-23 | 韩国物流网络股份有限公司 | 通过连接基于s-100的海事数据与大数据来生成标准信息的系统及方法 |
CN112735414A (zh) * | 2020-12-25 | 2021-04-30 | 肯特智能技术(深圳)股份有限公司 | 一种在线离线双模语音控制方法、系统以及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673294A (zh) * | 2009-09-28 | 2010-03-17 | 大连海事大学 | 基于web的远洋船舶气象信息服务系统 |
CN102646409A (zh) * | 2012-02-22 | 2012-08-22 | 中国人民解放军92859部队 | 全球多粒度电子海图的自动调度显示方法 |
-
2014
- 2014-08-15 CN CN201410402033.9A patent/CN104182498B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673294A (zh) * | 2009-09-28 | 2010-03-17 | 大连海事大学 | 基于web的远洋船舶气象信息服务系统 |
CN102646409A (zh) * | 2012-02-22 | 2012-08-22 | 中国人民解放军92859部队 | 全球多粒度电子海图的自动调度显示方法 |
Non-Patent Citations (2)
Title |
---|
张勇刚: "电子海图快速拼图显示技术研究", 《中国优秀博硕士学位论文全文数据库 (硕士) 工程科技Ⅱ辑》 * |
齐胜利: "基于Android的移动电子海图平台研究", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778024A (zh) * | 2015-04-23 | 2015-07-15 | 深圳大学 | 一种电子海图显示方法及系统 |
WO2016169521A1 (zh) * | 2015-04-23 | 2016-10-27 | 深圳大学 | 一种电子海图显示方法及系统 |
CN104778024B (zh) * | 2015-04-23 | 2018-04-03 | 深圳大学 | 一种电子海图显示方法及系统 |
CN107402928A (zh) * | 2016-05-20 | 2017-11-28 | 上海画擎信息科技有限公司 | 一种文档渲染方法 |
CN106097413A (zh) * | 2016-06-03 | 2016-11-09 | 大连陆海科技股份有限公司 | 多比例尺矢量海图数据的绘制系统及绘制方法 |
CN108701335A (zh) * | 2016-11-24 | 2018-10-23 | 韩国物流网络股份有限公司 | 通过连接基于s-100的海事数据与大数据来生成标准信息的系统及方法 |
CN112735414A (zh) * | 2020-12-25 | 2021-04-30 | 肯特智能技术(深圳)股份有限公司 | 一种在线离线双模语音控制方法、系统以及存储介质 |
CN112735414B (zh) * | 2020-12-25 | 2024-06-07 | 肯特智能技术(深圳)股份有限公司 | 一种在线离线双模语音控制方法、系统以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104182498B (zh) | 2017-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
CN111402390B (zh) | 模型渲染方法、装置、设备及存储介质 | |
CN105447101B (zh) | 一种地图引擎实现方法及装置 | |
US9704055B2 (en) | Occlusion render mechanism for point clouds | |
CN104182498A (zh) | Android平台下电子海图引擎及无时延显示方法 | |
CN104850388B (zh) | 网页绘制方法及装置 | |
US10319062B2 (en) | Rendering map data using descriptions of raster differences | |
CN103164516A (zh) | 电子海图数据转换装置和电子海图数据转换方法 | |
Ruzinoor et al. | A review on 3D terrain visualization of GIS data: techniques and software | |
US20120215817A1 (en) | Cross-platform cloud-based map creation | |
CN111080782A (zh) | 基于实景三维地理信息系统的可视化系统 | |
CN105550977A (zh) | 一种并行方式栅格影像切片方法 | |
JP2014186570A (ja) | 3次元地図表示システム | |
CN104166715B (zh) | 一种VxWorks平台电子海图引擎处理系统 | |
CN105389167A (zh) | 一种Web端实时船舶目标显示方法 | |
CN113538502A (zh) | 图片裁剪方法、装置、电子设备及存储介质 | |
CN103699641A (zh) | 一种接入不同栅格地图服务的方法 | |
CN111177812A (zh) | 一种含有封闭空间的web地图构建方法和装置 | |
EP3282351A1 (en) | System and method for facilitating an inspection process | |
CN104574473A (zh) | 一种基于静态图片生成动态效果的方法和装置 | |
She et al. | An efficient method for rendering linear symbols on 3D terrain using a shader language | |
CN113419806B (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
JP6174939B2 (ja) | 地図注記処理装置、地図注記処理方法および地図情報提供装置 | |
She et al. | A building label placement method for 3D visualizations based on candidate label evaluation and selection | |
Magliocchetti et al. | I-MOVE: towards the use of a mobile 3D GeoBrowser framework for urban mobility decision making |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |