电子地图中的面状图元名称的标注位置确定方法及装置与流程

文档序号:12368393阅读:725来源:国知局
电子地图中的面状图元名称的标注位置确定方法及装置与流程

本发明涉及电子地图领域,尤其涉及一种电子地图中的面状图元名称的标注位置确定方法及装置。



背景技术:

电子地图是利用计算机技术,以数字方式存储和查阅的地图,用户可以通过电子地图查找地点、查找出行路线等。电子地图的出现,方便了人们的生活和工作。

电子地图数据至少包括三种数据:面状图元(实际上用一个多边形表示)、线和点,其中,面状图元用于表示现实中的水域、绿地、岛屿、行政区域等。如图1所示的人民公园在电子地图中可以制作为一个五边形的面状图元。

通常,现有技术在电子地图中标注面状图元名称的方法是:针对任一面状图元,首先确定该面状图元的外包矩形框,然后计算该外包矩形框的中心点位置,将所述中心点位置设置为在电子地图中标注该面状图元的名称的位置。

然而,发明人在对现有技术进行研究的过程中发现,对于不规则的面状图元,将外包矩形框的中心点位置作为标注面状图元名称的位置,会出现标注的名称超出面状图元覆盖范围或者与相邻面状图元标注的名称交叠的问题,导致电子地图显示效果变差。如图2所示电子地图中标注的面状图元昆明湖的名称“昆明湖”超出了昆明湖覆盖范围。



技术实现要素:

本发明的目的是提供一种电子地图中的面状图元名称的标注位置确定方法及装置,以克服相关技术中标注面状图元名称造成电子地图的显示效果差的 问题。

一方面,本发明提供一种电子地图中的面状图元名称的标注位置确定方法,包括:

获取面状图元的外接多边形的中心点位置;

依据所述外接多边形的中心点位置,获取所述面状图元的内接多边形的中心点位置;

将所述内接多边形的中心点位置设为标注所述面状图元的名称的参考位置。

另一方面,本发明提供一种电子地图中的面状图元名称的标注位置确定装置,包括:

外中心点位置获取模块,用于针获取面状图元的外接多边形的中心点位置;

内中心点位置获取模块,用于依据所述外接多边形的中心点位置,获取所述面状图元的内接多边形的中心点位置;

参考位置确定模块,用于将所述内接多边形的中心点位置设为标注所述面状图元的名称的参考位置。

本发明至少具有以下有益效果:本发明提供一种电子地图中的面状图元名称的标注位置确定方法,在该方法中,将面状图元的内接多边形的中心点位置设为标注所述面状图元的名称的参考位置。本发明将面状图元的内接多边形的中心点位置设为标注所述面状图元名称的参考位置,而内接多边形是面状图元的一个内部区域,由此可见,本发明将标注面状图元的名称的区域范围缩小到了面状图元的内部,因此,基于本发明提供的技术方案能够解决现有技术标注的名称超出面状图元覆盖范围或者与相邻面状图元标注的名称交叠的问题,提高了电子地图的显示效果。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

图1为现有技术中面状图元及其名称的示意图;

图2为采用现有技术标注昆明湖的面状图元的名称的效果图;

图3为本发明实施例中电子地图中的面状图元名称的标注位置确定方法的示例性流程图之一;

图4为本发明实施例中确定目标圆心位置的示意图;

图5为本发明实施例中电子地图中的面状图元名称的标注位置确定方法的示例性流程图之二;

图6为采用本发明提供技术方案标注昆明湖的面状图元的名称的效果图;

图7为本发明实施例中电子地图中的面状图元名称的标注位置确定装置的示意图。

具体实施方式

以下结合附图对本发明的实施例进行说明,应当理解,此处所描述的实施例仅用于说明和解释本发明,并不用于限定本发明。

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

本发明提供一种电子地图中的面状图元名称的标注位置确定方法,在该方法中,将面状图元的内接多边形的中心点位置设为标注所述面状图元的名称的参考位置。本发明将面状图元的内接多边形的中心点位置设为标注所述面状图元名称的参考位置,而内接多边形是面状图元的一个内部区域,由此可见,本发明将标注面状图元的名称的区域范围缩小到了面状图元的内部,因此,基于 本发明提供的技术方案能够解决现有技术标注的名称超出面状图元覆盖范围或者与相邻面状图元标注的名称交叠的问题,提高了电子地图的显示效果。

下面对本发明实施例中电子地图中的面状图元名称的标注位置确定方法进行详细说明。

实施例一

如图3所示,为本发明实施例中电子地图中的面状图元名称的标注位置确定方法的示例性流程图,该方法包括以下步骤:

步骤301:获取面状图元的外接多边形的中心点位置。

步骤302:依据所述外接多边形的中心点位置,获取所述面状图元的内接多边形的中心点位置。

其中,为了在面状图元内部找到一个能够用于标注名称的最大区域,步骤302中的内接多边形可以是圆形、矩形、椭圆形等,内接多边形的具体形状可以取决于面状图元的形状。

步骤303:将所述内接多边形的中心点位置设为标注所述面状图元的名称的参考位置。

其中,较佳的,为进一步提高电子地图的显示效果,避免标注的名称超出面状图元覆盖范围或者与相邻面状图元标注的名称交叠的问题,以所述参考位置为基准,将所述面状图元的名称标注在所述内接多边形的内部。需要说明的是,当面状图元的名称可以缩放时,也可以根据内接多边形的具体形状,确定该面状图元的名称的排版方式,以使该面状图元的名称标注在所述内接多边形的内部。其中,排版方式包括字符的排列方向、字符大小、字间距、行间距、每一行的字符数等。

前文所述内接多边形可以是矩形、圆形或者其他多边形,以下分别以矩形和圆形为例,对本发明实施例提供的依据所述外接多边形的中心点位置,获取所述面状图元的内接多边形的中心点位置具体实施手段进行详细介绍。

第一,当内接多边形为矩形时,上述依据所述外接多边形的中心点位置, 获取所述面状图元的内接多边形的中心点位置具体包括:

步骤A1:获取面状图元的外接多边形的中心点位置,并将该中心点位置作为初始中心点位置。

步骤A2:遍历所述面状图元边界上的形状点,查找以所述初始中心点位置为中心点,且以至少一个面状图元边界上的形状点为顶点的内接矩形,并获取所述内接矩形的面积。

步骤A3:按预定的步长移动所述中心点位置,判断移动后的中心点位置是否超出或者落在所述面状图元的边界上,如果是,则进入步骤A4,否则,将以移动后的中心点位置作为初始中心点位置,返回步骤A2。

步骤A4:比较所有内接矩形的面积,将面积最大的一个内接矩形的对应的初始中心点位置确定为所述面状图元的内接多边形的中心点位置。

第二,当内接多边形为内切圆时,上述依据所述外接多边形的中心点位置,获取所述面状图元的内接多边形的中心点位置具体包括:

步骤B1:将所述外接多边形的中心点位置作为所述内切圆的初始圆心位置。

其中,较佳的外包围框可以是矩形外包围框,也可以是圆形外包围框等,具体实施时,可以根据实际需要确定,本发明对此不做限定。

步骤B2:获取初始圆心位置到所述外接多边形各条边的距离。

步骤B3:按预置的步长移动所述初始圆心位置,得到目标圆心位置。

步骤B4:获取目标圆心位置到所述外接多边形各条边的距离。

步骤B5:比较初始圆心位置到所述外接多边形各条边的最短距离与目标圆心位置到所述外接多边形各条边的最短距离的大小。

步骤B6:若初始圆心位置到所述外接多边形各条边的最短距离小于所述目标圆心位置到所述外接多边形各条边的最短距离,则将所述目标圆心位置作为所述内切圆的初始圆心位置,并返回步骤B2。

步骤B7:若初始圆心位置到所述外接多边形各条边的最短距离大于等于 目标圆心位置到所述外接多边形各条边的最短距离时,则按比例缩短所述步长,得到新的步长。

步骤B8:若新的步长小于预置的步长阈值,则将所述初始圆心位置作为面状图元的内切圆的中心点位置,若新的步长大于等于预置的步长阈值,则将所述新的步长作为预置的步长,并返回步骤B3。

其中,在一个实施例中,步骤B3可具体执行为以下操作:

步骤C1:获取初始圆心位置到所述外接多边形的第一边和第二边的垂足位置点A和垂足位置点B,所述第一边和第二边分别是初始圆心位置到所述外接多边形各条边的最短距离和次短距离对应的边。

步骤C2:根据以下公式(1),在所述垂足位置点A与所述垂足位置点B的连线上选取参考位置点C:

CA/CB=OA/OB (1)

其中,在公式(1)中,所述O表示初始圆心位置;所述A表示所述垂足位置点A;所述B表示所述垂足位置点B;所述C表示所述参考位置点;所述OA表示所述初始圆心位置与所述垂足位置点A之间的距离;所述OB表示所述初始圆心位置与所述垂足位置点B之间的距离;所述CA表示所述参考位置点与所述垂足位置点A之间的距离;所述CB表示所述参考位置点与所述垂足位置点B之间的距离。

步骤C3:获取位于所述参考位置点C和所述初始圆心位置的连线的延长线上且到初始圆心位置的距离等于预置的步长的位置点,并将该位置点作为目标圆心位置。

其中,在一个实施例中,步骤C3可以执行为:根据以下公式(2)计算目标圆心位置的横坐标和纵坐标;

<mrow> <msubsup> <mi>o</mi> <mi>x</mi> <mo>&prime;</mo> </msubsup> <mo>=</mo> <mfrac> <mrow> <mi>d</mi> <mo>&times;</mo> <mrow> <mo>(</mo> <msub> <mi>o</mi> <mi>x</mi> </msub> <mo>-</mo> <msub> <mi>c</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> </mrow> <msub> <mi>D</mi> <mi>co</mi> </msub> </mfrac> <mo>+</mo> <msub> <mi>o</mi> <mi>x</mi> </msub> </mrow> (2)

<mrow> <msubsup> <mi>o</mi> <mi>y</mi> <mo>&prime;</mo> </msubsup> <mo>=</mo> <msub> <mi>o</mi> <mi>y</mi> </msub> <mo>-</mo> <mfrac> <mrow> <mi>d</mi> <mo>&times;</mo> <mrow> <mo>(</mo> <msub> <mi>c</mi> <mi>y</mi> </msub> <mo>-</mo> <msub> <mi>o</mi> <mi>y</mi> </msub> <mo>)</mo> </mrow> </mrow> <msub> <mi>D</mi> <mi>co</mi> </msub> </mfrac> </mrow>

其中,在公式(2)中,所述o'x表示目标圆心位置的横坐标;所述d表示预置的步长;所述ox表示初始圆心位置的横坐标;所述cx表示参考位置点C的横坐标;所述Dco表示参考位置点C至初始圆心位置的距离;所述o'y表示目标圆心位置的纵坐标;所述oy表示初始圆心位置的纵坐标;所述cy表示参考位置点C的纵坐标。

其中,确定目标圆心位置的方法的示意图如图4所示:在图4中,首先确定出面状图元的外接多边形的中心点位置O,并将该中心位置作为初始圆心位置,然后计算初始圆心位置O至面状图元的各边的距离,其中,O至面状图元的边L1的距离最短,至面状图元的边L2的距离为次短距离。在图4中点A为O至L1的垂足位置点、B为O至L2的垂足位置点,R1表示O、A两点之间的距离、R2表示O、B两点之间的距离。确定出垂足位置点之后,根据公式(1)在垂足位置点A、B的连线上确定出参考位置点C。然后,再根据公式(2),以a为预置的步长,在CO的延长线上确定出目标圆心位置O’。之后,计算O’至面状图元的各边的距离,并获取O’至面状图元的各边的最短距离。在图4中,表示O’至边L1的距离R1’仍然为最短距离,由图4可知,R1’大于R1,故此,可以则O’作为新的初始圆心位置,继续寻找目标位置点,直至找到最大内切圆的圆心为止。

通过以上方法,确定出的内切圆是面状图元的最大内切圆,而最大内切圆是面状图元内部最大的可以标注名称的区域,因此,本发明实施例提供的技术方案能够避免标注的名称超出面状图元覆盖范围或者与相邻面状图元标注的名称交叠的问题,从而提高电子地图的显示质量。

综上可知,本发明实施例中,本发明提供一种电子地图中的面状图元名称的标注位置确定方法,在该方法中,将面状图元的内接多边形的中心点位置设为标注所述面状图元的名称的参考位置。本发明将面状图元的内接多边形的中心点位置设为标注所述面状图元名称的参考位置,而内接多边形是面状图元的一个内部区域,由此可见,本发明将标注面状图元的名称的区域范围缩小到了 面状图元的内部,因此,基于本发明提供的技术方案能够解决现有技术标注的名称超出面状图元覆盖范围或者与相邻面状图元标注的名称交叠的问题,提高了电子地图的显示效果。

此外,本发明实施例提供的方法当应用于电子地图数据的制作过程中时,由于是在面状图元内部确定内接多边形作为标注名称的区域,可以不关心各面状图元对应的具体名称。因此,本发明实施例提供方法能够以较高的效率完成面状图元的名称的标注位置的确定。

实施例二

昆明湖在电子地图中的面状图元,是一个不规则的多边形,下面以将昆明湖的面状图元的名称标注在该面状图元的最大内切圆处为例,对本发明实施例中的电子地图中的面状图元名称的标注方法进行详细说明,如图5所示,该方法包括以下步骤:

步骤501:确定昆明湖的面状图元的外接多边形的中心点位置,并将所述中心点位置作为所述内切圆的初始圆心位置。

步骤502:获取初始圆心位置到所述外接多边形各条边的距离。

步骤503:获取初始圆心位置到所述外接多边形的第一边和第二边的垂足位置点A和垂足位置点B,所述第一边和第二边分别是初始圆心位置到所述外接多边形各条边的最短距离和次短距离对应的边。

步骤504:根据公式(1),在所述垂足位置点A与所述垂足位置点B的连线上选取参考位置点C。

其中公式(1)已在实施例一中详细说明,在此不再赘述。

步骤505:根据公式(2)计算目标圆心位置的横坐标和纵坐标,以获得目标圆心位置。

其中公式(2)已在实施例一中详细说明,在此不再赘述。

步骤506:获取目标圆心位置到所述外接多边形各条边的距离。

步骤507:判断初始圆心位置到所述外接多边形各条边的最短距离是否小 于目标圆心位置到所述外接多边形各条边的最短距离,若是,则执行步骤508,若否,则执行步骤509。

步骤508:将所述目标圆心位置作为所述内切圆的初始圆心位置,并返回步骤502。

步骤509:按比例缩短所述步长,得到新的步长,若新的步长小于预置的步长阈值,则将所述初始圆心位置作为面状图元的内切圆的中心点位置,若新的步长大于等于预置的步长阈值,则将所述新的步长作为预置的步长,并返回步骤503。

步骤510:将确定的面状图元的内切圆的中心点位置设为标注所述面状图元的名称的参考位置。

步骤511:以所述参考位置为基准,将所述面状图元的名称标注在所述内接多边形的内部。

其中,通过以上步骤501-步骤511标注昆明湖的面状图元的名称后的效果图如图6所示,对比图6和图2(图2为现有技术中标注的面状图元昆明湖的名称“昆明湖”的示意图)可知,相对于现有技术中,本发明标注的昆明湖的面状图元的名称,不再与面状图元的边界交叠。故此,本发明实施例提供的电子地图中的面状图元名称的标注位置的确定方法能够提高电子地图的显示效果。

实施例三

基于相同的发明构思,本发明还提供一种电子地图中的面状图元名称的标注位置确定装置,如图7所示,所述装置包括:

外中心点位置获取模块701,用于针获取面状图元的外接多边形的中心点位置;

内中心点位置获取模块702,用于依据所述外接多边形的中心点位置,获取所述面状图元的内接多边形的中心点位置;

参考位置确定模块703,用于将所述内接多边形的中心点位置设为标注所 述面状图元的名称的参考位置。

其中,在一个实施例中,所述装置还包括:

标注模块,用于将所述内接多边形的中心点位置设为标注所述面状图元的名称的参考位置。

其中,在一个实施例中,所述内中心点位置获取模块702,具体包括:

初始圆心确定单元,用于若所述内接多边形为内切圆时,将所述外接多边形的中心点位置作为所述内切圆的初始圆心位置;

第一距离获取单元,用于获取初始圆心位置到所述外接多边形各条边的距离;

目标圆心确定单元,用于按预置的步长移动所述初始圆心位置,得到目标圆心位置;

第二距离获取单元,用于获取目标圆心位置到所述外接多边形各条边的距离;

比较单元,用于比较初始圆心位置到所述外接多边形各条边的最短距离与目标圆心位置到所述外接多边形各条边的最短距离的大小;

第一处理单元,用于若前者小于后者,则将所述目标圆心位置作为所述内切圆的初始圆心位置,并触发第一距离获取单元执行操作;

第二处理单元,用于若前者大于等于后者,则按比例缩短所述步长,得到新的步长,若新的步长小于预置的步长阈值,则将所述初始圆心位置作为面状图元的内切圆的中心点位置,若新的步长大于等于预置的步长阈值,则将所述新的步长作为预置的步长,并触发目标圆心确定单元执行操作。

其中,在一个实施例中,所述目标圆心确定单元,具体包括:

垂足点获取子单元,用于获取初始圆心位置到所述外接多边形的第一边和第二边的垂足位置点A和垂足位置点B,所述第一边和第二边分别是初始圆心位置到所述外接多边形各条边的最短距离和次短距离对应的边;

参考位置点获取子单元,用于根据公式CA/CB=OA/OB,在所述垂足位 置点A与所述垂足位置点B的连线上选取参考位置点C,其中,O表示初始圆心位置,OA、OB、CA、CB分别表示各位置之间的距离;

目标圆心确定子单元,用于获取位于所述参考位置点C和所述初始圆心位置的连线的延长线上且到初始圆心位置的距离等于预置的步长的位置点,并将该位置点作为目标圆心位置。

其中,在一个实施例中,所述目标圆心确定子单元,具体用于根据以下公式计算目标圆心位置的横坐标和纵坐标;

<mrow> <msubsup> <mi>o</mi> <mi>x</mi> <mo>&prime;</mo> </msubsup> <mo>=</mo> <mfrac> <mrow> <mi>d</mi> <mo>&times;</mo> <mrow> <mo>(</mo> <msub> <mi>o</mi> <mi>x</mi> </msub> <mo>-</mo> <msub> <mi>c</mi> <mi>x</mi> </msub> <mo>)</mo> </mrow> </mrow> <msub> <mi>D</mi> <mi>co</mi> </msub> </mfrac> <mo>+</mo> <msub> <mi>o</mi> <mi>x</mi> </msub> </mrow>

<mrow> <msubsup> <mi>o</mi> <mi>y</mi> <mo>&prime;</mo> </msubsup> <mo>=</mo> <msub> <mi>o</mi> <mi>y</mi> </msub> <mo>-</mo> <mfrac> <mrow> <mi>d</mi> <mo>&times;</mo> <mrow> <mo>(</mo> <msub> <mi>c</mi> <mi>y</mi> </msub> <mo>-</mo> <msub> <mi>o</mi> <mi>y</mi> </msub> <mo>)</mo> </mrow> </mrow> <msub> <mi>D</mi> <mi>co</mi> </msub> </mfrac> </mrow>

其中,所述o'x表示目标圆心位置的横坐标;所述d表示预置的步长;所述ox表示初始圆心位置的横坐标;所述cx表示参考位置点C的横坐标;所述Dco表示参考位置点C至初始圆心位置的距离;所述o'y表示目标圆心位置的纵坐标;所述oy表示初始圆心位置的纵坐标;所述cy表示参考位置点C的纵坐标。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算 机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1