CN104778024B - 一种电子海图显示方法及系统 - Google Patents
一种电子海图显示方法及系统 Download PDFInfo
- Publication number
- CN104778024B CN104778024B CN201510195806.5A CN201510195806A CN104778024B CN 104778024 B CN104778024 B CN 104778024B CN 201510195806 A CN201510195806 A CN 201510195806A CN 104778024 B CN104778024 B CN 104778024B
- Authority
- CN
- China
- Prior art keywords
- region
- summit
- thing mark
- window
- thing
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000003780 insertion Methods 0.000 claims description 18
- 230000037431 insertion Effects 0.000 claims description 18
- 241000239290 Araneae Species 0.000 claims description 16
- 239000000203 mixture Substances 0.000 claims description 15
- 235000013399 edible fruits Nutrition 0.000 claims description 5
- 230000009191 jumping Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 239000000686 essence Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
Abstract
本发明涉及电子海图图形处理领域,尤其涉及一种电子海图显示方法及系统。本发明利用矩形裁剪窗对需要显示的电子海图区域进行定位,并通过遍历电子海图的方式将整体位于裁剪窗之外的物标以及部分位于裁剪窗之内的物标的位于裁剪窗之外的部分裁剪掉,只保留位于裁剪窗之内的部分,然后再将物标载入内存位图,最后通过内存位图的方式显示到屏幕上,从而大大减少了载入内存的数据量,提高了电子海图的显示速度。
Description
技术领域
本发明涉及电子海图图形处理领域,尤其涉及一种电子海图显示方法及系统。
背景技术
信息化时代背景下,电子海图已逐渐取代纸质海图广泛应用于航海领域。其可存储并显示大量海图数据及气象、洋流、海盗等信息,可提供方便的查询功能,借助导航设备其还可方便地进行航线设计、航路监视、航线报警及导航等功能,针对船舶附近出现的礁石或陌生船舶还能提供语音报警功能,具有传统纸质海图所不具备的强大功能。
目前使用最多的电子海图系统都是基于PC机的,对硬件设备要求高,维护难,功耗大,灵活性低,而且需要操作人员同时熟悉PC操作系统及电子海图系统,对操作人员具有较高的要求,导致基于PC机的电子海图系统具有一定的制约性及局限性。由此,出现了基于嵌入式系统的电子海图,以计算机为基础的嵌入式操作系统具有功能丰富、体积小、成本低、功耗低、操作简单、可靠性高等诸多优点,大大降低了电子海图在使用中的制约性及局限性。但是,与PC机相比,嵌入式系统性能较低,制约了电子海图的显示速度,这又成为了制约基于嵌入式操作系统的电子海图系统发展的重要因素。
发明内容
本发明所要解决的技术问题是,提供一种电子海图显示方法及系统,以提高电子海图的显示速度。本发明是这样实现的:
一种电子海图显示方法,所述电子海图经墨卡托投影被预先转换到平面坐标系;所述显示方法包括如下步骤:
步骤S1:利用矩形裁剪窗定位需要显示的电子海图区域,然后跳转到步骤S2;
步骤S2:遍历所述电子海图中的物标;
步骤S3:根据当前显示比例尺判断所述物标是否在其显示比例尺范围内,如果在,则跳转到步骤S4,否则,将所述物标舍弃,并返回步骤S2;
步骤S4:检测所述物标与所述裁剪窗之间的位置关系;当所述物标整体位于所述裁剪窗之外时,将所述物标舍弃,并返回步骤S2,否则跳转到步骤S5;
步骤S5:根据当前显示比例尺将所述物标由平面坐标系转换到屏幕坐标系,然后跳转到步骤S6;
步骤S6:当所述物标整体位于所述裁剪窗之内时,直接跳转到步骤S7,否则裁剪掉所述物标位于所述裁剪窗之外的部分,再跳转到步骤S7;
步骤S7:将所述物标载入内存位图,并跳转到步骤S8;
步骤S8:判断所述电子海图中的物标是否遍历完,如果是,则跳转到步骤S9,否则,返回步骤S2;
步骤S9:在屏幕上显示所述内存位图。
进一步地,所述物标包含点物标、线物标及面物标;所述电子海图根据物标空间特征属性被分类存储在点链表、线链表及面链表中;所述点链表中存储有各点物标的平面坐标数据,所述线链表中存储有各线物标的平面坐标数据,所述面链表中存储有各面物标的平面坐标数据;所述面链表中还存储有各面物标的各边界的平面坐标数据。
进一步地,所述裁剪窗的四条线段所在的直线将所述电子海图划分为9个区域;设所述裁剪窗为区域A;由区域A的右边界所对应的区域开始,沿逆时针方向将其余8个区域分别定义为区域B、区域C、区域D、区域E、区域F、区域G、区域H、区域I;其中,设区域A为第一类区域,区域C、区域E、区域G及区域I为第二类区域,区域B、区域D、区域F及区域H为第三类区域;当所述物标为面物标时,设裁剪前所述面物标各顶点组成顶点序列S,裁剪后所述面物标各顶点组成顶点序列S';所述步骤S6中的裁剪方法如下:
对顶点序列S中的每一顶点根据如下裁剪规则进行裁剪,并将裁剪后得到的顶点插入顶点序列S'中,对所有顶点裁剪完成后,得到的顶点序列S'组成的多边形即为裁剪掉所述物标位于所述裁剪窗之外的部分之后的图形;所述裁剪规则为:
设需要裁剪的顶点为Pn,其前一顶点为Pm;由顶点Pm到顶点Pn的有向线段为L;
当顶点Pn属于第一类区域时,包括如下A1、A2两种情况:
情况A1:当顶点Pm不属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中,然后将顶点Pn也插入顶点序列S'中;
情况A2:当顶点Pm属于第一类区域时,将顶点Pn插入顶点序列S'中;
当顶点Pn属于第二类区域时,包括如下B1、B2、B3三种情况:
情况B1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中;
情况B2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域在同一侧时,如果顶点Pm与顶点Pn不属于同一区域,则将顶点Pn所在区域的顶点插入顶点序列S'中,否则不进行任何操作;
情况B3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不在同一侧时,判断有向线段L与裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将有向线段L所穿越的第二类区域的顶点插入到顶点序列S'中,并将顶点Pn所在区域的顶点插入顶点序列S'中;
当顶点Pn属于第三类区域时,包括如下C1、C2、C3三种情况:
情况C1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中;
情况C2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域相邻时,不进行任何操作;
情况C3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不相邻时,判断有向线段L与所述裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将所述有向线段L所穿越的第二类区域的顶点插入顶点序列S'。
进一步地,计算有向线段L与裁剪窗的交点的步骤包括:
计算有向线段L与顶点Pm所属区域的所有可见边是否有交点,如果没有,则判定有向线段L与裁剪窗没有交点,如果有,则计算出该交点,然后跳转到下一步;
计算有向线段L与顶点Pn所属区域的所有可见边是否有交点,如果没有,则有向线段L与裁剪窗的交点为上一步计算得出的交点,如果有,则计算出该交点,有向线段L与裁剪窗的交点为该交点及上一步计算得出的交点。
进一步地,将所述物标由平面坐标系转换到屏幕坐标系时,如果有多个平面坐标转换为同一个屏幕像素坐标,则只将所述多个平面坐标中的一个转换为屏幕像素坐标,而将其余坐标舍弃。
一种电子海图显示系统,所述电子海图经墨卡托投影被预先转换到平面坐标系;所述显示系统包括海图显示区域定位模块、物标遍历模块、物标比例尺判断模块、物标与裁剪窗位置关系判断模块、坐标转换模块、物标裁剪模块、位图载入模块、物标遍历完成情况判断模块及显示模块;其中:
所述海图显示区域定位模块用于利用矩形裁剪窗定位需要显示的电子海图区域,并跳转到所述物标遍历模块;
所述物标遍历模块用于遍历所述电子海图中的物标;
所述物标比例尺判断模块用于根据当前显示比例尺判断所述物标是否在其显示比例尺范围内,如果在,则跳转到所述物标与裁剪窗位置关系判断模块,否则,将所述物标舍弃,并跳转到所述物标遍历模块;
所述物标与裁剪窗位置关系判断模块用于检测所述物标与所述裁剪窗之间的位置关系;当所述物标整体位于所述裁剪窗之外时,将所述物标舍弃,并跳转到所述物标遍历模块,否则跳转到所述坐标转换模块;
所述坐标转换模块用于根据当前显示比例尺将所述物标由平面坐标系转换到屏幕坐标系,然后跳转到所述物标裁剪模块;
所述物标裁剪模块用于当所述物标整体位于所述裁剪窗之内时,直接跳转到所述位图载入模块,否则裁剪掉所述物标位于所述裁剪窗之外的部分,再跳转到所述位图载入模块;
所述位图载入模块用于将所述物标载入内存位图,并跳转到所述物标遍历完成情况判断模块;
所述物标遍历完成情况判断模块用于判断所述电子海图中的物标是否遍历完,如果是,则跳转到所述显示模块,否则返回所述物标遍历模块;
所述显示模块用于在屏幕上显示所述内存位图。
进一步地,所述物标包含点物标、线物标及面物标;所述电子海图根据物标空间特征属性被分类存储在点链表、线链表及面链表中;所述点链表中存储有各点物标的平面坐标数据,所述线链表中存储有各线物标的平面坐标数据,所述面链表中存储有各面物标的平面坐标数据;所述面链表中还存储有各面物标的各边界的平面坐标数据。
进一步地,所述裁剪窗的四条线段所在的直线将所述电子海图划分为9个区域;设所述裁剪窗为区域A;由区域A的右边界所对应的区域开始,沿逆时针方向将其余8个区域分别定义为区域B、区域C、区域D、区域E、区域F、区域G、区域H、区域I;其中,设区域A为第一类区域,区域C、区域E、区域G及区域I为第二类区域,区域B、区域D、区域F及区域H为第三类区域;当所述物标为面物标时,设裁剪前所述面物标各顶点组成顶点序列S,裁剪后所述面物标各顶点组成顶点序列S';所述物标裁剪模块用于:
对顶点序列S中的每一顶点根据如下裁剪规则进行裁剪,并将裁剪后得到的顶点插入顶点序列S'中,对所有顶点裁剪完成后,得到的顶点序列S'组成的多边形即为裁剪掉所述物标位于所述裁剪窗之外的部分之后的图形;所述裁剪规则为:
设需要裁剪的顶点为Pn,其前一顶点为Pm;由顶点Pm到顶点Pn的有向线段为L;
当顶点Pn属于第一类区域时,包括如下A1、A2两种情况:
情况A1:当顶点Pm不属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中,然后将顶点Pn也插入顶点序列S'中;
情况A2:当顶点Pm属于第一类区域时,将顶点Pn插入顶点序列S'中;
当顶点Pn属于第二类区域时,包括如下B1、B2、B3三种情况:
情况B1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中;
情况B2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域在同一侧时,如果顶点Pm与顶点Pn不属于同一区域,则将顶点Pn所在区域的顶点插入顶点序列S'中,否则不进行任何操作;
情况B3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不在同一侧时,判断有向线段L与裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将有向线段L所穿越的第二类区域的顶点插入到顶点序列S'中,并将顶点Pn所在区域的顶点插入顶点序列S'中;
当顶点Pn属于第三类区域时,包括如下C1、C2、C3三种情况:
情况C1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中;
情况C2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域相邻时,不进行任何操作;
情况C3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不相邻时,判断有向线段L与所述裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将所述有向线段L所穿越的第二类区域的顶点插入顶点序列S'。
进一步地,所述物标裁剪模块计算有向线段L与裁剪窗的交点的方法为:
计算有向线段L与顶点Pm所属区域的所有可见边是否有交点,如果没有,则判定有向线段L与裁剪窗没有交点,如果有,则计算出该交点,然后跳转到下一步;
计算有向线段L与顶点Pn所属区域的所有可见边是否有交点,如果没有,则有向线段L与裁剪窗的交点为上一步计算得出的交点,如果有,则计算出该交点,有向线段L与裁剪窗的交点为该交点及上一步计算得出的交点。
进一步地,所述坐标转换模块将所述物标由平面坐标系转换到屏幕坐标系时,如果有多个平面坐标转换为同一个屏幕像素坐标,则只将所述多个平面坐标中的一个转换为屏幕像素坐标,而将其余坐标舍弃。
与现有技术相比,本发明利用矩形裁剪窗对需要显示的电子海图区域进行定位,并通过遍历电子海图的方式将整体位于裁剪窗之外的物标以及部分位于裁剪窗之内的物标的位于裁剪窗之外的部分裁剪掉,只保留位于裁剪窗之内的部分,然后再将物标载入内存位图,最后通过内存位图的方式显示到屏幕上,从而大大减少了载入内存的数据量,提高了电子海图的显示速度。
附图说明
图1:本发明提供的电子海图显示方法流程示意图;
图2:电子海图区域划分及可见边示意图;
图3:本发明提供的电子海图显示系统组成示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
本发明通过内存映射技术读取海图原始数据,并根据IHO(InternationalHydrographic Organization,国际海道测量组织)的S-57标准对读取的海图原始数据进行解析,从而获得符合S-57标准的电子海图数据。获得的电子海图数据经墨卡托投影从地理坐标转换到平面坐标系,这样,在显示电子海图的过程中,就不需要再进行墨卡托投影计算,可加快显示速度。经墨卡托投影后的数据再根据IHO的S-52标准导入颜色表、符号库及条件命令等,从而转换为电子海图显示过程中所使用到的实际数据,从而完成电子海图初始化。
初始化后,电子海图数据中的物标根据物标空间属性包括点物标、线物标及面物标。为减少信息检索时间及提高显示速度,本发明采用分类存储的方式,根据物标空间特征属性将初始化后的电子海图数据分类存储到点链表、线链表及面链表中。其中,点链表中存储各点物标的平面坐标数据,线链表中存储各线物标的平面坐标数据,面链表中存储各面物标的平面坐标数据。此外,还可将各面物标的各边界的平面坐标数据保存到面链表中,这样,当对某一坐标进行检索时,只需要判断该检索的点是否位于某一面物标的界限范围内即可,如果被检索的点不在该物标的界限范围内,即可判断出该物标为非检索物标,而不需要与该物标的所有坐标数据进行比较,从而达到提高检索速度,降低资源使用率的效果。
将电子海图分类存储后,就可根据需要提取电子海图的相应区域进行显示。结合如图1对电子海图显示方法流程说明如下:
步骤S1:利用矩形裁剪窗定位需要显示的电子海图区域,然后跳转到步骤S2。显示电子海图前,首先需要定位需要显示的电子海图区域。由于一般用于显示电子海图的屏幕都是矩形,因此,本发明利用矩形裁剪窗定位需要显示的电子海图区域。所用的矩形裁剪窗的长宽比例应当与电子海图的显示屏幕的长宽比相同。
步骤S2:遍历电子海图中的物标。
步骤S3:根据当前显示比例尺判断物标是否在其显示比例尺范围内,如果在,则跳转到步骤S4,否则,将物标舍弃,并返回步骤S2。电子海图中的每个物标都有预设的显示比例尺范围,只有在物标的显示比例尺范围内显示该物标才能获得良好的显示效果,超出物标的显示比例尺范围将会导致该物标过大或过小,不利于观察。因此,对于电子海图中的某一物标而言,当电子海图的当前比例尺不在该物标的显示比例尺范围内时,则不需要显示该物标,需将其舍弃,并返回步骤S2,继续读取下一物标。
步骤S4:检测物标与裁剪窗之间的位置关系;当物标整体位于裁剪窗之外时,将物标舍弃,并返回步骤S2,否则跳转到步骤S5。该步骤用于判断该物标与裁剪窗之间的位置关系,如果该物标整体位于裁剪窗之外,则不需要显示该物标,需要将其舍弃,并返回步骤S2,继续读取下一物标。对于点物标而言,其与裁剪窗的位置关系只有两种情况:1、整体位于裁剪窗之内;2、整体位于裁剪窗之外。因此,对于点物标而言,只需判断该点物标的屏幕像素坐标是否在裁剪窗的像素坐标范围内,如果在裁剪窗的像素坐标范围内,说明该点物标整体位于裁剪窗之内,否则,说明该点物标整体位于该裁剪窗之外。对于线物标而言,其与裁剪窗之间的位置关系有三种情况:1、整体包含于裁剪窗之内;2、整体位于裁剪窗之外;3、部分位于裁剪窗之内,部分位于裁剪窗之外。对于线物标而言,可通过该线物标的两端点的屏幕像素坐标判断该线物标与裁剪窗之间的位置关系。如果两端点的屏幕像素坐标都位于裁剪窗之内,则表明该线物标整体位于裁剪窗之内;如果两端点的屏幕像素坐标都位于裁剪窗之外,则表明该线物标整体位于裁剪窗之外;如果两端点分别位于裁剪窗的内部和外部,则表明该线物标部分位于裁剪窗之内,部分位于裁剪窗之外。面物标与裁剪窗之间的关系也有三种情况:1、整体包含于裁剪窗之内;2、整体位于裁剪窗之外;3、部分位于裁剪窗之内,部分位于裁剪窗之外。面物标是由若干条有向线段围成的封闭区域,各有向线段的端点组成了该面物标的顶点。对于面物标而言,可通过该面物标的各顶点的屏幕像素坐标判断该面物标与裁剪窗之间的位置关系:如果某一面物标的所有顶点的屏幕像素坐标都位于裁剪窗之内,则说明该面物标整体位于裁剪窗之内;如果某一面物标的所有顶点都位于裁剪窗之外,则说明该面物标整体位于裁剪窗之外;如果某一面物标的一部分顶点位于裁剪窗之内,一部分顶点位于裁剪窗之外,则说明该面物标部分位于裁剪窗之内,部分位于裁剪窗之外。
步骤S5:根据当前显示比例尺将物标由平面坐标系转换到屏幕坐标系,然后跳转到步骤S6。对于整体位于裁剪窗之外的物标,直接将其舍弃,对于整体位于裁剪窗之内的物标,需要将其保留。而对于部分位于裁剪窗之内、部分位于裁剪窗之外的物标,不能直接将其舍弃,需要通过后续的裁剪步骤将其位于裁剪窗之外的部分裁剪掉,保留其位于裁剪窗之内的部分。而后续的裁剪及显示都是在屏幕坐标系中进行的,因此,对于整体或部分位于裁剪窗之内的物标,需将其由平面坐标系转换到屏幕坐标系。具体转换方法为,根据该物标中的各点与平面坐标系的横轴及纵轴之间的距离及电子海图的当前显示比例尺,计算转换后该物标中的各点与屏幕坐标系的横轴及纵轴之间的距离,然后再根据屏幕中每一像素的宽度(屏幕宽度/屏幕宽度方向上的像素数量)及高度(屏幕高度/屏幕高度方向上的像素数量)计算得出转换后该物标中的各点的屏幕像素坐标。转换时需要注意平面坐标系与屏幕坐标系的原点位置可能不同。在将物标由平面坐标系转换到屏幕坐标系时,如果示比例尺偏小,在转换过程中极可能出现多个平面坐标转换为同一屏幕像素坐标,如果转换过程中出现多个平面坐标转化为同一个屏幕像素坐标的情况,则只需将多个平面坐标中的一个转化为屏幕像素坐标,而将其余坐标舍弃,从而消除冗余数据,降低系统负荷。
步骤S6:当物标整体位于裁剪窗之内时,直接跳转到步骤S7,否则裁剪掉物标位于裁剪窗之外的部分,再跳转到步骤S7。
进入步骤S6的物标都是整体或部分位于裁剪窗之内的物标,而对于整体位于裁剪窗之内的物标,不需要对其进行裁剪,直接跳转到步骤S7,而对于部分位于裁剪窗之内的物标,需要裁剪掉该物标位于裁剪窗之外的部分后,再跳转到步骤S7。在步骤S6中,对于点物标而言,其只可能是整体位于裁剪窗之内的物标,因此,可直接跳转到步骤S7。对于线物标而言,如果根据前述方法判断出该线物标是整体位于裁剪窗之内的,则直接跳转到步骤S7;如果该线物标是部分位于裁剪窗之内的,则需计算该线物标与裁剪窗的交点,保留该交点与该线物标位于裁剪窗之内的端点之间的部分,舍弃该交点与该线物标位于裁剪窗之外的端点之间的部分。对于面物标而言,当根据前述方法判断出该面物标是整体位于裁剪窗之内的,则直接跳转到步骤S7;如果该面物标是部分位于裁剪窗之内的,则需要将该面物标位于裁剪窗之外的部分裁剪掉,只保留该面物标位于裁剪窗之内的部分。
本发明以线物标的裁剪为基础,提出了如下的面物标裁剪方法:
如图2所示,裁剪窗的四条线段所在的直线将电子海图划分为9个区域,设裁剪窗为区域A,由区域A的右边界所对应的区域开始,沿逆时针方向将其余8个区域分别定义为区域B、区域C、区域D、区域E、区域F、区域G、区域H、区域I。其中,设区域A为第一类区域,区域C、区域E、区域G及区域I为第二类区域,区域B、区域D、区域F及区域H为第三类区域。设裁剪前面物标各顶点组成顶点序列S,裁剪后该面物标各顶点组成顶点序列S',裁剪开始前,顶点序列S'为空。面物标的裁剪方法为:
对顶点序列S中的每一顶点根据如下裁剪规则进行裁剪,裁剪后得到的顶点序列S'组成的多边形即为裁剪掉物标位于裁剪窗之外的部分之后的图形;裁剪规则为:
设需要裁剪的顶点为Pn,其前一顶点为Pm;由顶点Pm到顶点Pn的有向线段为L;
当顶点Pn属于第一类区域时,包括如下A1、A2两种情况:
情况A1:当顶点Pm不属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中,然后将顶点Pn也插入顶点序列S'中。
情况A2:当顶点Pm属于第一类区域时,将顶点Pn插入顶点序列S'中。
当顶点Pn属于第二类区域时,包括如下B1、B2、B3三种情况:
情况B1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中。
情况B2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域在同一侧时,如果顶点Pm与顶点Pn不属于同一区域,则将顶点Pn所在区域的顶点插入顶点序列S'中,否则不进行任何操作。在本文中,区域的顶点是指该区域所对应的裁剪窗的顶点,只有第二类区域(区域C、区域E、区域G及区域I)才有顶点,区域C、E、G、I的顶点分别为裁剪窗的右下角顶点、左下角顶点、左上角顶点、右上角顶点。当两个区域符合下述四个条件之一时,认为该两个区域在同一侧:
1、两个区域都在裁剪窗的上边界所在直线的上方,即两个区域为区域G、区域H、区域I中的任意两个;
2、两个区域都在裁剪窗的左边界所在直线的左侧,即两个区域为区域E、区域、区域G中的任意两个;
3、两个区域都在裁剪窗的右边界所在直线的右侧,即两个区域为区域I、区域B、区域C中任意两个;
4、两个区域在裁剪窗的下边界所在直线的下方,即两个区域为区域C、区域D、区域E中的任意两个。
情况B3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不在同一侧时,判断有向线段L与裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将有向线段L所穿越的第二类区域的顶点插入到顶点序列S'中,并将顶点Pn所在区域的顶点插入顶点序列S'中。这里按顺序插入是指,根据有向线段L的方向,假设有向线段L是由顶点Pm向顶点Pn逐渐延伸而成的,则在形成有向线段L的过程中,其可能与裁剪窗多次相交,从而形成多个交点,因此,在将各交点插入顶点序列S'中时,应根据各交点形成的先后顺序将各交点插入顶点序列S'。
当顶点Pn属于第三类区域时,包括如下C1、C2、C3三种情况:
情况C1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中。
情况C2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域相邻时,不进行任何操作。这里,两个区域相邻是指两个区域具有共同的边界线。
情况C3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不相邻时,判断有向线段L与裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将有向线段L所穿越的第二类区域的顶点插入顶点序列S'。
根据前述裁剪规则,可依据被裁减的顶点Pn与其前一顶点Pm所属的区域执行相应的操作,从而形成如下操作映射表:
上述映射表为一9×9二维整形数组,记为re_table。该数组中的元素re_tableij表示需要执行的操作,re_tableij的取值从-1到6,各取值分别对应的操作如下表所示:
re_tableij下标i表示顶点Pm所属区域,下标j表示顶点Pn所属区域,根据顶点Pm及顶点Pn所属的区域,即可通过上表查找到对应的操作。
在计算有向线段L是否与裁剪窗相交时,由于已知有向线段L的起点(顶点Pm)及终点(顶点Pn)所属区域,在某些情况下可以明显确定有向线段L与裁剪窗的某些边界不可能相交,例如,从区域B到区域F的有向线段L,明显其不可能穿越边界E1和E2(如图2所示)。如果能够将这些情况排除在外,能省去大量的交点计算操作,从而极大提高程序效率。因此,为减少不必要的计算交点的操作,本发明引入可见边。设L是任意一条由区域Z0到区域Z1,且与裁剪窗的边界相交的有向线段,则裁剪窗的与L相交的第一个边界即为区域Z0的可见边。基于可见边的定义,并结合图2,可以确定各区域的可见边如下表所示:
在可见边的前提下,计算有向线段L与裁剪窗的交点时,可按如下步骤进行:
首先,计算有向线段L与顶点Pm所属区域的所有可见边是否有交点,如果没有,则判定有向线段L与裁剪窗没有交点,如果有,则计算出该交点,然后跳转到下一步;
然后,计算有向线段L与顶点Pn所属区域的所有可见边是否有交点,如果没有,则有向线段L与裁剪窗的交点为上一步计算得出的交点,如果有,则计算出该交点,有向线段L与裁剪窗的交点为该交点及上一步计算得出的交点。
本发明提出的面物标裁剪方法,只需要计算被裁剪图形与裁剪窗的交点,且只需遍历电子海图一次即可完成裁剪,可大大减少运算量,从而提高电子海图的显示速度。同时,采用该面物标裁剪方法对面物标进行裁剪时,当需要裁剪的顶点Pn位于裁剪窗外时,如果其前一顶点Pm与顶点Pn位于同一侧(与两个面位于同一侧的定义同理),则根据裁剪规则可自动将顶点Pn及顶点Pm删除。就算法复杂性而言,利用本发明提出的面物标裁剪方法,只需一次性开辟空间以存储裁剪后的顶点序列S',不需要像传统算法那样需要多次开辟空间来存储每一次裁剪后得到的顶点序列,极大地降低了对系统存储空间的需求。
步骤S7:将物标载入内存位图,并跳转到步骤S8。当裁剪掉部分位于裁剪窗之内的物标的位于裁剪窗之外的部分后,就可将该物标载入内存位图了。如果物标是整体位于裁剪窗之内,则不需要进行裁剪,在转换到屏幕坐标系后直接载入内存位图。
步骤S8:判断电子海图中的物标是否遍历完,如果是,则跳转到步骤S9,否则,返回步骤S2。步骤S8实际上是为实现一个循环处理的过程,即判断是否遍历完电子海图中的所有目标,如果没有遍历完,则返回步骤S2,读取下一物标,继续通过步骤S2至步骤S7进行处理。当遍历完所有物标后,就可执行步骤S9,即在屏幕上显示内存位图。
电子海图显示就是使用GDI(图像设备接口)函数将数据显示出来,但如果直接在屏幕上根据这些数据绘制海图,会导致屏幕闪烁的情况,在漫游、缩放时,可以明显的感觉到海图从屏幕的一个方向向另一个方面缓缓显示。为了解决这个问题,可以采用内存位图技术。内存位图技术是一种内存拷贝技术,首先在内存中新建一张位图(位图尺寸略大于嵌入式屏幕),然后将图像绘制到这张位图中,即通过步骤S7依次将电子海图中的每个符合条件的物标载入内存位图,并跳转到步骤S8判断电子海图中各物标是否判断完,如果没有,则返回步骤S2遍历下一物标,直到所有符合条件的物标都载入内存位图后跳转至步骤S9以在屏幕上显示内存位图。当需要更新屏幕显示内容时将绘制好的位图一次性拷贝到屏幕上。采用该技术可以避免直接将海图绘制到屏幕上所带来的屏幕闪烁问题。采用内存拷贝技术在显示速度上远快于直接使用GDI绘制到屏幕,从而提高了程序图形绘制性能。
如图3所示,本发明还提供了一种电子海图显示系统,电子海图经墨卡托投影被预先转换到平面坐标系;显示系统包括海图显示区域定位模块1、物标遍历模块2、物标比例尺判断模块3、物标与裁剪窗位置关系判断模块4、坐标转换模块5、物标裁剪模块6、位图载入模块7、物标遍历完成情况判断模块8及显示模块9。其中:
海图显示区域定位模块1用于利用矩形裁剪窗定位需要显示的电子海图区域,并跳转到物标遍历模块2;
物标遍历模块2用于遍历电子海图中的物标;
物标比例尺判断模块3用于根据当前显示比例尺判断物标是否在其显示比例尺范围内,如果在,则跳转到物标与裁剪窗位置关系判断模块4,否则,将物标舍弃,并跳转到物标遍历模块2;
物标与裁剪窗位置关系判断模块4用于检测物标与裁剪窗之间的位置关系;当物标整体位于裁剪窗之外时,将物标舍弃,并跳转到物标遍历模块2,否则跳转到坐标转换模块5;
坐标转换模块5用于根据当前显示比例尺将物标由平面坐标系转换到屏幕坐标系,然后跳转到物标裁剪模块6;
物标裁剪模块6用于当物标整体位于裁剪窗之内时,直接跳转到位图载入模块7,否则裁剪掉物标位于裁剪窗之外的部分,再跳转到位图载入模块7;
位图载入模块7用于将物标载入内存位图,并跳转到物标遍历完成情况判断模块8;
物标遍历完成情况判断模块8用于判断电子海图中的物标是否遍历完,如果是,则跳转到显示模块9,否则返回物标遍历模块2;
显示模块9用于在屏幕上显示内存位图。
物标包含点物标、线物标及面物标;电子海图根据物标空间特征属性被分类存储在点链表、线链表及面链表中;点链表中存储有各点物标的平面坐标数据,线链表中存储有各线物标的平面坐标数据,面链表中存储有各面物标的平面坐标数据;面链表中还存储有各面物标的各边界的平面坐标数据。
裁剪窗的四条线段所在的直线将电子海图划分为9个区域;设裁剪窗为区域A;由区域A的右边界所对应的区域开始,沿逆时针方向将其余8个区域分别定义为区域B、区域C、区域D、区域E、区域F、区域G、区域H、区域I;其中,设区域A为第一类区域,区域C、区域E、区域G及区域I为第二类区域,区域B、区域D、区域F及区域H为第三类区域。如果物标是部分位于裁剪窗之内、部分位于裁剪窗之外的面物标,设裁剪前该面物标各顶点组成顶点序列S,裁剪后面物标各顶点组成顶点序列S',则物标裁剪模块7用于对顶点序列S中的每一顶点根据如下裁剪规则进行裁剪,并将裁剪后得到的顶点插入顶点序列S'中,对所有顶点裁剪完成后,得到的顶点序列S'组成的多边形即为裁剪掉物标位于裁剪窗之外的部分之后的图形;裁剪规则为:
设需要裁剪的顶点为Pn,其前一顶点为Pm;由顶点Pm到顶点Pn的有向线段为L;
当顶点Pn属于第一类区域时,包括如下A1、A2两种情况:
情况A1:当顶点Pm不属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中,然后将顶点Pn也插入顶点序列S'中;
情况A2:当顶点Pm属于第一类区域时,将顶点Pn插入顶点序列S'中;
当顶点Pn属于第二类区域时,包括如下B1、B2、B3三种情况:
情况B1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中;
情况B2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域在同一侧时,如果顶点Pm与顶点Pn不属于同一区域,则将顶点Pn所在区域的顶点插入顶点序列S'中,否则不进行任何操作;
情况B3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不在同一侧时,判断有向线段L与裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将有向线段L所穿越的第二类区域的顶点插入到顶点序列S'中,并将顶点Pn所在区域的顶点插入顶点序列S'中;
当顶点Pn属于第三类区域时,包括如下C1、C2、C3三种情况:
情况C1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中;
情况C2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域相邻时,不进行任何操作;
情况C3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不相邻时,判断有向线段L与裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将有向线段L所穿越的第二类区域的顶点插入顶点序列S'。
物标裁剪模块7计算有向线段L与裁剪窗的交点的方法为:
计算有向线段L与顶点Pm所属区域的所有可见边是否有交点,如果没有,则判定有向线段L与裁剪窗没有交点,如果有,则计算出该交点,然后跳转到下一步;
计算有向线段L与顶点Pn所属区域的所有可见边是否有交点,如果没有,则有向线段L与裁剪窗的交点为上一步计算得出的交点,如果有,则计算出该交点,有向线段L与裁剪窗的交点为该交点及上一步计算得出的交点。
坐标转换模块5将物标由平面坐标系转换到屏幕坐标系时,如果有多个平面坐标转换为同一个屏幕像素坐标,则只将多个平面坐标中的一个转换为屏幕像素坐标,而将其余坐标舍弃。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种电子海图显示方法,所述电子海图经墨卡托投影被预先转换到平面坐标系;其特征在于,所述显示方法包括如下步骤:
步骤S1:利用矩形裁剪窗定位需要显示的电子海图区域,然后跳转到步骤S2,所述矩形裁剪窗的长宽比例与所述电子海图的显示屏幕的长宽比例相同;
步骤S2:遍历所述电子海图中的物标;
步骤S3:根据当前显示比例尺判断所述物标是否在其显示比例尺范围内,如果在,则跳转到步骤S4,否则,将所述物标舍弃,并返回步骤S2;
步骤S4:检测所述物标与所述裁剪窗之间的位置关系;当所述物标整体位于所述裁剪窗之外时,将所述物标舍弃,并返回步骤S2,否则跳转到步骤S5;
步骤S5:根据当前显示比例尺将所述物标由平面坐标系转换到屏幕坐标系,然后跳转到步骤S6;
步骤S6:当所述物标整体位于所述裁剪窗之内时,直接跳转到步骤S7,否则裁剪掉所述物标位于所述裁剪窗之外的部分,再跳转到步骤S7;
步骤S7:将所述物标载入内存位图,并跳转到步骤S8;
步骤S8:判断所述电子海图中的物标是否遍历完,如果是,则跳转到步骤S9,否则,返回步骤S2;
步骤S9:在屏幕上显示所述内存位图。
2.如权利要求1所述的电子海图显示方法,其特征在于,所述物标包含点物标、线物标及面物标;所述电子海图根据物标空间特征属性被分类存储在点链表、线链表及面链表中;所述点链表中存储有各点物标的平面坐标数据,所述线链表中存储有各线物标的平面坐标数据,所述面链表中存储有各面物标的平面坐标数据;所述面链表中还存储有各面物标的各边界的平面坐标数据。
3.如权利要求1所述的电子海图显示方法,其特征在于,所述裁剪窗的四条线段所在的直线将所述电子海图划分为9个区域;设所述裁剪窗为区域A;由区域A的右边界所对应的区域开始,沿逆时针方向将其余8个区域分别定义为区域B、区域C、区域D、区域E、区域F、区域G、区域H、区域I;其中,设区域A为第一类区域,区域C、区域E、区域G及区域I为第二类区域,区域B、区域D、区域F及区域H为第三类区域;当所述物标为面物标时,设裁剪前所述面物标各顶点组成顶点序列S,裁剪后所述面物标各顶点组成顶点序列S';所述步骤S6中的裁剪方法如下:
对顶点序列S中的每一顶点根据如下裁剪规则进行裁剪,并将裁剪后得到的顶点插入顶点序列S'中,对所有顶点裁剪完成后,得到的顶点序列S'组成的多边形即为裁剪掉所述物标位于所述裁剪窗之外的部分之后的图形;所述裁剪规则为:
设需要裁剪的顶点为Pn,其前一顶点为Pm;由顶点Pm到顶点Pn的有向线段为L;
当顶点Pn属于第一类区域时,包括如下A1、A2两种情况:
情况A1:当顶点Pm不属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中,然后将顶点Pn也插入顶点序列S'中;
情况A2:当顶点Pm属于第一类区域时,将顶点Pn插入顶点序列S'中;
当顶点Pn属于第二类区域时,包括如下B1、B2、B3三种情况:
情况B1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中;
情况B2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域在同一侧时,如果顶点Pm与顶点Pn不属于同一区域,则将顶点Pn所在区域的顶点插入顶点序列S'中,否则不进行任何操作;
情况B3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不在同一侧时,判断有向线段L与裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将有向线段L所穿越的第二类区域的顶点插入到顶点序列S'中,并将顶点Pn所在区域的顶点插入顶点序列S'中;
当顶点Pn属于第三类区域时,包括如下C1、C2、C3三种情况:
情况C1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中;
情况C2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域相邻时,不进行任何操作;
情况C3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不相邻时,判断有向线段L与所述裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将所述有向线段L所穿越的第二类区域的顶点插入顶点序列S'。
4.如权利要求3所述的电子海图显示方法,其特征在于,计算有向线段L与裁剪窗的交点的步骤包括:
计算有向线段L与顶点Pm所属区域的所有可见边是否有交点,如果没有,则判定有向线段L与裁剪窗没有交点,如果有,则计算出该交点,然后跳转到下一步;
计算有向线段L与顶点Pn所属区域的所有可见边是否有交点,如果没有,则有向线段L与裁剪窗的交点为上一步计算得出的交点,如果有,则计算出该交点,有向线段L与裁剪窗的交点为该交点及上一步计算得出的交点。
5.如权利要求1所述的电子海图显示方法,其特征在于,将所述物标由平面坐标系转换到屏幕坐标系时,如果有多个平面坐标转换为同一个屏幕像素坐标,则只将所述多个平面坐标中的一个转换为屏幕像素坐标,而将其余坐标舍弃。
6.一种电子海图显示系统,所述电子海图经墨卡托投影被预先转换到平面坐标系;其特征在于,所述显示系统包括海图显示区域定位模块、物标遍历模块、物标比例尺判断模块、物标与裁剪窗位置关系判断模块、坐标转换模块、物标裁剪模块、位图载入模块、物标遍历完成情况判断模块及显示模块;其中:
所述海图显示区域定位模块用于利用矩形裁剪窗定位需要显示的电子海图区域,并跳转到所述物标遍历模块,所述矩形裁剪窗的长宽比例与所述电子海图的显示屏幕的长宽比例相同;
所述物标遍历模块用于遍历所述电子海图中的物标;
所述物标比例尺判断模块用于根据当前显示比例尺判断所述物标是否在其显示比例尺范围内,如果在,则跳转到所述物标与裁剪窗位置关系判断模块,否则,将所述物标舍弃,并跳转到所述物标遍历模块;
所述物标与裁剪窗位置关系判断模块用于检测所述物标与所述裁剪窗之间的位置关系;当所述物标整体位于所述裁剪窗之外时,将所述物标舍弃,并跳转到所述物标遍历模块,否则跳转到所述坐标转换模块;
所述坐标转换模块用于根据当前显示比例尺将所述物标由平面坐标系转换到屏幕坐标系,然后跳转到所述物标裁剪模块;
所述物标裁剪模块用于当所述物标整体位于所述裁剪窗之内时,直接跳转到所述位图载入模块,否则裁剪掉所述物标位于所述裁剪窗之外的部分,再跳转到所述位图载入模块;
所述位图载入模块用于将所述物标载入内存位图,并跳转到所述物标遍历完成情况判断模块;
所述物标遍历完成情况判断模块用于判断所述电子海图中的物标是否遍历完,如果是,则跳转到所述显示模块,否则返回所述物标遍历模块;
所述显示模块用于在屏幕上显示所述内存位图。
7.如权利要求6所述的电子海图显示系统,其特征在于,所述物标包含点物标、线物标及面物标;所述电子海图根据物标空间特征属性被分类存储在点链表、线链表及面链表中;所述点链表中存储有各点物标的平面坐标数据,所述线链表中存储有各线物标的平面坐标数据,所述面链表中存储有各面物标的平面坐标数据;所述面链表中还存储有各面物标的各边界的平面坐标数据。
8.如权利要求6所述的电子海图显示系统,其特征在于,所述裁剪窗的四条线段所在的直线将所述电子海图划分为9个区域;设所述裁剪窗为区域A;由区域A的右边界所对应的区域开始,沿逆时针方向将其余8个区域分别定义为区域B、区域C、区域D、区域E、区域F、区域G、区域H、区域I;其中,设区域A为第一类区域,区域C、区域E、区域G及区域I为第二类区域,区域B、区域D、区域F及区域H为第三类区域;当所述物标为面物标时,设裁剪前所述面物标各顶点组成顶点序列S,裁剪后所述面物标各顶点组成顶点序列S';所述物标裁剪模块用于:
对顶点序列S中的每一顶点根据如下裁剪规则进行裁剪,并将裁剪后得到的顶点插入顶点序列S'中,对所有顶点裁剪完成后,得到的顶点序列S'组成的多边形即为裁剪掉所述物标位于所述裁剪窗之外的部分之后的图形;所述裁剪规则为:
设需要裁剪的顶点为Pn,其前一顶点为Pm;由顶点Pm到顶点Pn的有向线段为L;
当顶点Pn属于第一类区域时,包括如下A1、A2两种情况:
情况A1:当顶点Pm不属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中,然后将顶点Pn也插入顶点序列S'中;
情况A2:当顶点Pm属于第一类区域时,将顶点Pn插入顶点序列S'中;
当顶点Pn属于第二类区域时,包括如下B1、B2、B3三种情况:
情况B1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中;
情况B2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域在同一侧时,如果顶点Pm与顶点Pn不属于同一区域,则将顶点Pn所在区域的顶点插入顶点序列S'中,否则不进行任何操作;
情况B3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不在同一侧时,判断有向线段L与裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将有向线段L所穿越的第二类区域的顶点插入到顶点序列S'中,并将顶点Pn所在区域的顶点插入顶点序列S'中;
当顶点Pn属于第三类区域时,包括如下C1、C2、C3三种情况:
情况C1:当顶点Pm属于第一类区域时,求出有向线段L与裁剪窗的交点,并将求得的交点插入到顶点序列S'中;
情况C2:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域相邻时,不进行任何操作;
情况C3:当顶点Pm不属于第一类区域,且其所属区域与顶点Pn所属区域不相邻时,判断有向线段L与所述裁剪窗是否相交,如果相交,将求得的交点按顺序插入顶点序列S',否则将所述有向线段L所穿越的第二类区域的顶点插入顶点序列S'。
9.如权利要求8所述的电子海图显示系统,其特征在于,所述物标裁剪模块计算有向线段L与裁剪窗的交点的方法为:
计算有向线段L与顶点Pm所属区域的所有可见边是否有交点,如果没有,则判定有向线段L与裁剪窗没有交点,如果有,则计算出该交点,然后跳转到下一步;
计算有向线段L与顶点Pn所属区域的所有可见边是否有交点,如果没有,则有向线段L与裁剪窗的交点为上一步计算得出的交点,如果有,则计算出该交点,有向线段L与裁剪窗的交点为该交点及上一步计算得出的交点。
10.如权利要求6所述的电子海图显示系统,其特征在于,所述坐标转换模块将所述物标由平面坐标系转换到屏幕坐标系时,如果有多个平面坐标转换为同一个屏幕像素坐标,则只将所述多个平面坐标中的一个转换为屏幕像素坐标,而将其余坐标舍弃。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510195806.5A CN104778024B (zh) | 2015-04-23 | 2015-04-23 | 一种电子海图显示方法及系统 |
PCT/CN2016/080050 WO2016169521A1 (zh) | 2015-04-23 | 2016-04-22 | 一种电子海图显示方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510195806.5A CN104778024B (zh) | 2015-04-23 | 2015-04-23 | 一种电子海图显示方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104778024A CN104778024A (zh) | 2015-07-15 |
CN104778024B true CN104778024B (zh) | 2018-04-03 |
Family
ID=53619515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510195806.5A Expired - Fee Related CN104778024B (zh) | 2015-04-23 | 2015-04-23 | 一种电子海图显示方法及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104778024B (zh) |
WO (1) | WO2016169521A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104778024B (zh) * | 2015-04-23 | 2018-04-03 | 深圳大学 | 一种电子海图显示方法及系统 |
CN105426521B (zh) * | 2015-12-04 | 2019-04-23 | 深圳大学 | 具有三级索引结构的海图数据库及其数据读取方法 |
CN106125099A (zh) * | 2016-06-28 | 2016-11-16 | 深圳大学 | 一种基于北斗卫星的海上导航救援系统 |
CN108665516B (zh) * | 2018-04-20 | 2019-11-29 | 中国人民解放军92859部队 | 电子航海图中s-52线符号与svg符号的转换方法 |
CN110956696B (zh) * | 2019-11-13 | 2023-04-28 | 中国人民解放军92859部队 | 一种基于多尺度海图数据的海底地形模拟仿真方法 |
CN111104615A (zh) * | 2019-12-10 | 2020-05-05 | 中船航海科技有限责任公司 | 一种基于矢量电子海图的气象要素叠加显示方法 |
CN113902615B (zh) * | 2021-01-08 | 2024-03-01 | 中国船舶重工集团公司第七0七研究所 | 一种电子海图快速无缝拼接显示方法 |
CN112837328B (zh) * | 2021-02-23 | 2022-06-03 | 中国石油大学(华东) | 一种二维多边形图元的矩形视窗剪裁绘图方法 |
CN114034302A (zh) * | 2021-10-28 | 2022-02-11 | 广州海宁海务技术咨询有限公司 | 一种基于规划航线的海图选择方法及装置 |
CN115983512B (zh) * | 2022-09-02 | 2023-10-20 | 武汉理工大学 | 面向特定区域的电子海图显示与应用平台 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101783010A (zh) * | 2009-07-24 | 2010-07-21 | 上海海事大学 | 一种用于生成可无缝拼接的电子海图图片的系统及方法 |
CN101908202A (zh) * | 2010-07-09 | 2010-12-08 | 哈尔滨工程大学 | 一种电子海图的快速显示方法 |
CN104182498A (zh) * | 2014-08-15 | 2014-12-03 | 成都天奥信息科技有限公司 | Android平台下电子海图引擎及无时延显示方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003345240A (ja) * | 2002-05-24 | 2003-12-03 | Japan Radio Co Ltd | 電子海図情報表示方法及び電子海図情報表示装置 |
GB2510361B (en) * | 2013-01-31 | 2016-07-27 | Martek Marine Ltd | An Electronic Chart Display and Information System with Switching between Satellite and Mobile Communications |
CN104778024B (zh) * | 2015-04-23 | 2018-04-03 | 深圳大学 | 一种电子海图显示方法及系统 |
-
2015
- 2015-04-23 CN CN201510195806.5A patent/CN104778024B/zh not_active Expired - Fee Related
-
2016
- 2016-04-22 WO PCT/CN2016/080050 patent/WO2016169521A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101783010A (zh) * | 2009-07-24 | 2010-07-21 | 上海海事大学 | 一种用于生成可无缝拼接的电子海图图片的系统及方法 |
CN101908202A (zh) * | 2010-07-09 | 2010-12-08 | 哈尔滨工程大学 | 一种电子海图的快速显示方法 |
CN104182498A (zh) * | 2014-08-15 | 2014-12-03 | 成都天奥信息科技有限公司 | Android平台下电子海图引擎及无时延显示方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2016169521A1 (zh) | 2016-10-27 |
CN104778024A (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104778024B (zh) | 一种电子海图显示方法及系统 | |
US9183666B2 (en) | System and method for overlaying two-dimensional map data on a three-dimensional scene | |
EP2725323B1 (en) | Map viewer and method | |
ES2373095T3 (es) | Sistema y procedimiento para la abstracción y visualización de un mapa de ruta. | |
WO2017053101A1 (en) | 3d model generation from map data | |
US20130057550A1 (en) | Three-dimensional map drawing system | |
CN102692232B (zh) | 数字地图中的路标 | |
CN103875024B (zh) | 摄影机导航系统及方法 | |
US20140267273A1 (en) | System and method for overlaying two-dimensional map elements over terrain geometry | |
CN108474666A (zh) | 用于在地图显示中定位用户的系统和方法 | |
US20140320488A1 (en) | 3d building model construction tools | |
CN101783010B (zh) | 一种用于生成可无缝拼接的电子海图图片的系统及方法 | |
EP2409291A1 (en) | 3d building generalization for digital map applications | |
CN103150328A (zh) | 一种利用数据库自动制图的集成方法 | |
US20160012635A1 (en) | Three-dimensional map display system | |
JP5964771B2 (ja) | 3次元地図表示装置、3次元地図表示方法、および、コンピュータプログラム | |
EP2338152B1 (en) | Method and system for rendering of labels | |
CN103714213B (zh) | 一种复杂地理信息的并行绘制方法 | |
CN110428504B (zh) | 文本图像合成方法、装置、计算机设备和存储介质 | |
JP6022386B2 (ja) | 3次元地図表示装置、3次元地図表示方法、および、コンピュータプログラム | |
CN105913475A (zh) | 一种时空变化过程动态可视化方法 | |
CN105283734A (zh) | 三维地图显示系统 | |
WO2021136224A1 (zh) | 图像分割方法以及图像分割装置 | |
US9846819B2 (en) | Map image display device, navigation device, and map image display method | |
CN109598792B (zh) | 三维场景中建筑物注记的自动放置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180403 |