一种利用冲突检测机制的地图标注方法及装置与流程

文档序号:16784744发布日期:2019-02-01 19:21阅读:191来源:国知局
一种利用冲突检测机制的地图标注方法及装置与流程

本发明涉及数字地图符号标注领域,具体而言涉及一种利用冲突检测机制的地图标注方法及装置。



背景技术:

地图标注是确定地图要素的过程,地图要素是构成地图的基本内容。分为数学要素、地理要素和辅助要素。

随着地理信息系统的广泛应用,地图标注作技术越来越受到人们的重视,地图制图过程中存在复杂的渲染和布局技术,其中地图要素中的文字和符号标注位置的合理和准确性是非常重要的,精确的标注可以避免使用者产生歧义。为了解决地图文字或符号重叠引起的目标识别的错误的问题,目前标注冲突检测采用的技术包括人工设置地图文字与符号、半自动化的指定某种文字与符号布局模式和非智能检测冲突的自动化地图布局。这种方法人工成本高、效率较低。



技术实现要素:

本发明提供了一种利用冲突检测机制的地图标注方法及装置,用以解决现有技术中的地图符号标注方法成本高、效率较低的问题。

根据本发明的一个方面,提供了一种利用冲突检测机制的地图标注方法,包括:

采用卷包裹算法计算待标注的地图标签的最小外包凸多边形;计算各最小外包凸多边形的最小外接矩形;以包含地图的所有要素的最小外包矩形为根结点,外包凸多边形的最小外接矩形为叶子节点建立空间索引树;在空间索引树中依次查询与每个外接矩形相交的其它外接矩形;在不存在与空间索引树中的其它外接矩形相交的外接矩形内标注与其对应的地图标签;当外接矩形与其它外接矩形相交时,判断相交的外接矩形内的外包凸多边形是否相交;如果相交的外接矩形内的外包凸多边形不相交,则在该不相交的外包凸多边形中标注与其相对应的地图标签;如果相交的外接矩形内的外包凸多边形相交,则在相交的外包凸多边形内标注其中一个外包凸多边形对应的地图标签。

进一步地,上述方法还包括:根据导航重要性确定地图标签标注的优先级;在相交的外包凸多边形内标注其中一个外包凸多边形对应的地图标签包括:在地图标签的最小外包凸多边形内标注优先级最高的地图标签。

其中,上述采用卷包裹算法计算待标注的地图标签的最小外包凸多边形包括:当地图标签的组成元素之前的间距大于第一阈值时,计算每个元素的最小外包凸多边形;当地图标签的组成元素之前的间距小于等于第一阈值时,则计算地图标签的整体的外包凸多边形。

进一步地,上述方法还包括:以地图的点要素为圆心,选取以指定长度为半径的圆形区域;将圆形区域均匀划分为多个扇形区域;在不存在与其它圆形区域相交部分的扇形区域内标注待标注的地图标签。

其中,在不存在与其它圆形区域相交部分的扇形区域内标注地图标签包括:如果多个需要标注的各点间的距离最远的两个点的距离不超过第二阈值,则选择多个需要标注的点中优先级别最高的点进行标注;如果需要标注的多个点之间存在冲突,则标注表示地理区域最大的点。

其中,上述以外包凸多边形的最小外接矩形为叶子节点建立空间索引树包括:根据外包矩形建立RTree索引树。

进一步地,上述方法还包括:当地图比例缩小时,删除重叠的地图标签中优先级较低的索引;当地图比例放大时,从未显示的地图标签中选择优先级最高的地图标签,显示优先级最高的地图标签中与已显示的地图标签不重叠的地图标签并将其插入索引。

根据本发明的另一个方面,提供了一种利用冲突检测机制的地图标注装置,包括:第一计算模块,用于采用卷包裹算法计算待标注的地图标签的最小外包凸多边形;第二计算模块,用于计算各最小外包凸多边形的最小外接矩形;建立模块,用于以包含地图的所有要素的最小外包矩形为根结点,外包凸多边形的最小外接矩形为叶子节点建立空间索引树;查询模块,用于在空间索引树中依次查询与每个外接矩形相交的其它外接矩形;第一标注模块,用于在不存在与空间索引树中的其它外接矩形相交的外接矩形内标注与其对应的地图标签;判断模块,用于当外接矩形与其它外接矩形相交时,判断相交的外接矩形内的外包凸多边形是否相交;第二标注模块,用于如果相交的外接矩形内的外包凸多边形不相交,则在该不相交的外包凸多边形中标注与其相对应的地图标签;第三标注模块,用于如果相交的外接矩形内的外包凸多边形相交,则在相交的外包凸多边形内标注其中一个外包凸多边形对应的地图标签。

进一步地,上述装置还包括:确定模块,用于根据导航重要性确定标签标注的优先级;第三标注模块包括:第一标注单元,用于在地图标签的最小外包凸多边形内标注优先级最高的标签。

其中,上述第一计算模块包括:第一计算单元,用于当地图标签的组成元素之前的间距大于第一阈值时,则计算每个元素的最小外包凸多边形;第二计算单元,用于当地图标签的组成元素之前的间距小于等于第一阈值时,则计算地图标签的整体的外包凸多边形。

进一步地,上述装置还包括:选取模块,用于以地图的点要素为圆心,选取以指定长度为半径的圆形区域;划分模块,用于将圆形区域均匀划分为多个扇形区域;第四标注模块,用于在不存在与其它圆形区域相交部分的扇形区域内标注待标注的地图标签。

其中,上述第四标注模块包括:第二标注单元,用于如果多个需要标注的各点间的距离最远的两个点的距离不超过第二阈值,则选择多个需要标注的点中优先级别最高的点进行标注;第三标注单元,用于如果需要标注的多个点之间存在冲突,则标注表示地理区域最大的点。

其中,上述建立模块包括:建立单元,用于根据外包矩形建立RTree索引树。

进一步地,上述装置还包括:删除模块,用于当地图比例缩小时,删除重叠的地图标签中优先级低的索引;显示模块,当地图比例放大时,从未显示的地图标签中选择优先级最高的地图标签,显示优先级最高的地图标签中与已显示的地图标签不重叠的地图标签并将其插入索引。

本发明的技术方案,根据地图标签的外包矩形建立空间索引树,通过判断各地图标签的最小外包凸多边形以及最小外接矩形是否相交,来确定地图标签的标注位置,从而避免地图标签的标注产生冲突。实现了地图符号标注的自动化,提高了制图效率。此外,由于可以根据地图标签的重要程度来确定标注的地图标签,可以确保重要性较高的地图标签优先被标注。

说明书附图

图1是本发明的利用冲突检测机制的标注方法的流程图;

图2是获取地图文字标签的外包多边形的示意图;

图3是按照本发明的地图标签的标注方法进行地图标注的示意图;

图4是本发明的地图标签的标注装置的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。

本发明提供了一种地图标签的标注方法,其中地图标签为地图中标注的起到地理要素标识作用的文字及符号。

图1是本发明地图标签的标注方法的流程图。

步骤101:采用卷包裹算法计算待标注的地图标签的最小外包凸多边形;

步骤102:计算各最小外包凸多边形的最小外接矩形;

步骤103:以包含地图的所有要素的最小外包矩形为根结点,外包凸多边形的最小外接矩形为叶子节点建立空间索引树;

步骤104:在空间索引树中依次查询与每个外接矩形相交的其它外接矩形;

步骤105:在不存在与空间索引树中的其它外接矩形相交的外接矩形内标注与其对应的地图标签;

步骤106:当外接矩形与其它外接矩形相交时,判断相交的外接矩形内的外包凸多边形是否相交;

步骤107:如果相交的外接矩形内的外包凸多边形不相交,则在该不相交的外包凸多边形中标注与其相对应的地图标签;

步骤108:如果相交的外接矩形内的外包凸多边形相交,则在相交的外包凸多边形内标注其中一个外包凸多边形对应的地图标签。

图3是按照上述地图标签的标注方法对需要标注的标签进行标注的几种情况,其中21是在地图标签的最小外包矩形外的空白空间标注需要标注的地图标签的情况,22是在地图标签的最小外包多边形外的空白空间标注需要标注的地图标签的情况,23是在地图标签的最小外包矩形与最小外包多边形求差后的剩余多边形内标注地图标签的情况。在上述步骤101中,可以对地图文字标签的外接包络多边形进行划分,如图2所示,根据地图标注语言的不同,可以分为连续包络多边形和独立包络多边形。

需要说明的是,在地图显示空间充分的情况下,即文字间出现重叠冲突概率非常小时,可以选择不计算标注文字的包络多边形。

如果地图标注的文字内容较短而且字体间距较小,可以计算标注文字整体的包络多边形。但该方法的前提是标注文字的整体方向保持一致,首先计算文字摆放方向的中轴线,文字的中心点必须在该中轴线上,在代码实现中,具体可以根据字体Font的size确定文字整体的高度,通过文字中首个文字左侧两个角点坐标和末尾文字的右侧两个角点坐标构造矩形,并将该矩形加入RTree索引结构中,需要说明的是,该方法常用于字数较少的点状地图要素的标注。

如果地图标注文字较长并且字体间距较大,可以计算各文字的独立包络矩形,如对河流进行沿线标注,进行这种标注的前提是文字的跨度较大并且文字走向和位置不一致,对每个文字单独求解外包矩形,将这些矩形分别插入RTree索引结构中。

对于西文字体,每个单词字母之间的高度不一致,需要计算每个字母高度方向的上下界限,对每个字母计算高度的底层和顶层线段,然后用垂直于这些层线段的线段连接相邻的层线段,最后形成线段要素之间平行或垂直的包络多边形,这种凹凸形状的多边形有利于最大限度的利用地图空间,标注更多的文字。

在确定地图文字标签的外接包络多边形的种类之后,具体地可以采用以下方式来获取地图文字标签的最小外包凸多边形:

设定表达地图标签的轮廓的点数为n,首先准备一个数组结构PtArray存储构成地图标签的最小外包凸多边形的点,然后选择这些点中y轴坐标值最小的点为初始点,并将该点存入数组作为元素PtArray[0];通过PtArray[0]点做水平线,然后以该点为中心,逆时针旋转水平线,将水平线遇到的点存入数组PtArray,将最后一个存入数组的点设置为基准点。重复以上步骤,直到最后一个基准点存储到初始点PtArray[0]。将数组中的点首尾相连形成地图标签的外包凸多边形。

地图标签的标注首先选择空白区域进行标注,如果无法找到空白区域,则按照地图符号及文字的优先级进行覆盖,也就是说选择优先级较高的标签进行标注。因此,在进行标注之前,需要设置地图标签的优先级,可以按照需要标注的地图标签的重要性来确定标注时的优先级,其中可以用所表示的区域大小来确定优先级,例如,“中国”与“北京”这两个文字标注时,对于这两个文字设置优先级时,“中国”的优先级高于“北京”。

当本发明的地图标签的标注方法应用在航空地图时,对于航空安全性和导航特性有重要影响的地物要素首先标注,为这类的地物要素设置较高的优先级如山峰、高压电塔和飞机场等。具体地,可以将地图要素的优先级别设置为为0-1000个级别,0级表示该要素可以被完全覆盖,1000表示该要素需要始终进行标注并不能被其他图层的要素覆盖。

其中,上述步骤103中,需要对地图的标签建立三层空间索引结构:文字最小外包矩形索引、地物要素的最小外包矩形索引以及地图符号凸包结构的最小外包矩形索引。

首先,以地图的图层最大外包范围Envlope作为根结点Georoot,初始构建只有一个结点的R-tree空间索引结构GeoRTree,维护地物要素的空间位置关系,即以地图整个图幅的最小外包矩形作为根结点初始化一个要素外包矩形的R-tree。迭代访问图层中的地物要素Featurei,并将该要素的最小外包矩形作为Nodei子结点插入到GeoRTree中。

以地图的图层最大外包范围Envlope作为根结点Labelroot,初始构建只有一个结点的R-tree空间索引结构LabelRTree,维护文字标注的空间位置关系;迭代访问图层中的地物要素Featurei,从Featurei需要标记的字段抽取文字,根据当前地图索引因子,设置Font的大小,从Font中获取文字的最小外包矩形,将该最小外包矩形作为Nodei子结点插入到LabelRTree中。

根据地图标签的几何边界计算其外包凸多边形:设地图标签采用n个离散点进行标识,那么根据Graham算法求外包凸多边形的时间复杂度为O(nh),其中n为总点数,h为生成后凸包点数;以地图的图层最大外包范围Envelope作为根结点Symbolroot,初始构建只有一个结点的R-tree空间索引结构SymbolRTree,维护符号标记的空间位置关系。

根据制图中地图标签最小外包矩形采用空间索引,地图标签的最小外包矩形的空间索引采用动态RTree,其中RTree空间索引的深度与地图要素分布密集程度有关,地图标签索引树中子结点不存在外包矩形的重叠。

在按照上述方法进行标注的地图的使用过程中,可以根据地图分级显示的需要,根据屏幕空间的布局动态确定RTree需要索引的地图标签,具体地,当地图比例缩小时,对RTree索引结构进行压缩,删除重叠的地图标签的索引,也就是说不显示这些地图标签;当地图放大比例时,扩展RTree索引,增大叶子结点之间的空隙,从未显示的地图标签中选择重要程度较高的地图标签进行显示,将与现有地图标签不冲突的文字或符号插入RTree并进行显示。

此外,当按照上述步骤101至步骤108的标注方法进行地图标签的标注后,还可以进一步针对点状地图要素与其文字标注的位置关系进行确定,即当点要地图素较密集时采用文字标注进行智能避让的方式,包括:

对于地图的点要素,选取以指定长度为半径的圆形,将该圆形区域划分为8个等大的扇形子区域,这些子区域分别对应坐标空间中的8个象限,并顺时针对各子区域进行标号。在进行标注时,只在8个象限中的其中一个象限中标注,如果当前圆形区域与其他圆形区域相交,则交集部分不进行标注。通过设置一定的条件,将一定距离范围内的标注进行抽稀,对于多部多边形可以在面积最大的部分内进行标注。例如,多个点之间距离最远的两个点不超过1km,那么这多个点可以只标注一个点;多部多边形是由多个简单多边形组成的结构,比如台湾在地图中是一个多部多边形,实际包括台湾主岛和周围小岛,存储时以一个整体进行存储,在地图标注时如果有冲突,只标注台湾主岛,小岛则不进行标注。

在对地图进行标注之后,还需要对地图文字的标记进行关化,以地图出更加美观,具体可以进行如下美化操作:

在地图中存在线状要素时,自适应地控制标注文字在线状要素上的分布,并可以避免与其他线上文字的冲突。

地图文字轮廓线周围设定渲染效果,无锯齿形状的文字存在,根据地图文字字体特征和稀疏程度,对文字的外围轮廓进行逼近形成最贴近文字的包络线;其中,地图文字轮廓包络线逼近可以有四种方式:无包络线;将连续文字作为整体求包络线;对于非规则字体按照字体的凹凸特性构造不规则包络线;对于间隔较大的文字标注,对独立的文字求其逼近包络线;在地图文字的最小外包矩形存在冲突的情况下,地图文字的包络线不能存在重叠情况,其他情况文字位置可以任意布局。

等高线以及等高线的文字标注不能压盖另一条等高线及其文字标注,等高线密集大于字体宽度时,按照等高线的优先级确定需要标注的等高线;部分标注时,除最后一条等高线外,被标注的等高线之间间隔相同数量的等高线。

地图线状河流要素的文字标注沿河流走势方向进行标注;地图线状河流要素的文字标注沿对于坐标轴有固定角度的方向进行标注;地图线状河流要素的文字标注可以对河流中的每条线段进行标注,线状长度小于标注文字长度的自动取消标注,并且每段标注都是该河流的全部文字标注。

计算河流要素的总长度,根据线性参考算法,将需要标注的文字离散化的标注在河流沿线;离散化标注中文字的摆放角度可以为固定角度,也可以是按照当前线段的走向进行标注。

本发明的地图标签标注方法采用标注预处理和动态交互标注两个过程,可以平衡制图速度和制图质量的冲突,预处理阶段在制图前对空间数据进行准备,该阶段构建冲突反应图,记录制图中潜在的冲突情况并标志地图缩放有关的必要信息。冲突反应图由节点(node)和边(edge)元素组成,节点表示需要在地图中进行标注的对象,边表示潜在存在冲突的节点的关联关系。潜在冲突是指需要显示的标签之间在不同比例尺中均存在重叠。边元素维护一个比例尺区间比如[1∶250000,1∶1000000]用来描述潜在冲突的出现比例范围。该区间的上限为冲突发生的最大比例尺,区间的下限为冲突存在的最小比例尺。在小于区间右值的比例尺下,在相互冲突的一对要素中,只标注其中一个标签来解决冲突问题。在地图标签的预处理阶段的冲突反应图只考虑单个图层的标签间的冲突情况,动态交互制图过程需要考虑地图中的自由空间对多个主题的样式标签进行标注空间分配,实现方式为将预处理的冲突反应图中的结点进行合并,从整体布局地图标签。

本发明的地图标签的标注方法,对于聚集程度较高的地图要素,有选择的进行部分标注,保证标注的准确性。并且冲突检测算法的精度和效率之间的平衡,在精度可控的前提下,最大限度地提升冲突效率,缩短用户的等待时间。

本发明还提供了一种地图标签的标注装置,图4是该装置的结构框图,如图4所示,该装置40包括以下组成部分:

第一计算模块41,用于采用卷包裹算法计算待标注的地图标签的最小外包凸多边形;第二计算模块42,用于计算各最小外包凸多边形的最小外接矩形;建立模块43,用于以包含地图的所有要素的最小外包矩形为根结点,外包凸多边形的最小外接矩形为叶子节点建立空间索引树;查询模块44,用于在空间索引树中依次查询与每个外接矩形相交的其它外接矩形;第一标注模块45,用于在不存在与空间索引树中的其它外接矩形相交的外接矩形内标注与其对应的地图标签;判断模块46,用于当外接矩形与其它外接矩形相交时,判断相交的外接矩形内的外包凸多边形是否相交;第二标注模块47,用于如果相交的外接矩形内的外包凸多边形不相交,则在该不相交的外包凸多边形中标注与其相对应的地图标签;第三标注模块48,用于如果相交的外接矩形内的外包凸多边形相交,则在相交的外包凸多边形内标注其中一个外包凸多边形对应的地图标签。

其中,上述装置还可以包括:确定模块,用于根据航空安全性以及导航重要性确定标签标注的优先级;基于该优先级的建立,上述第三标注模块可以包括,第一标注单元,用于在优先级最高的标签的外包矩形内标注优先级最高的标签。

其中,上述第一计算模块具体可以包括:第一计算单元,用于当地图标签的组成元素之前的间距大于第一阈值时,则计算每个元素的最小外包凸多边形;第二计算单元,用于当地图标签的组成元素之前的间距小于等于第一阈值时,则计算地图标签的整体的外包凸多边形。

其中,上述装置还可以包括:选取模块,用于以地图的点要素为圆心,选取以指定长度为半径的圆形区域;划分模块,用于将圆形区域均匀划分为多个扇形区域;第四标注模块,用于在不存在与其它圆形区域相交部分的扇形区域内标注地图标签。

其中,上述第四标注模块可以包括:第二标注单元,用于如果多个需要标注的各点间的距离最远的两个点的距离不超过预设值,则选择多个需要标注的点中优先级别最高的点进行标注;第三标注单元,用于如果需要标注的地理区域的标签存在冲突,则标注地理区域较大的区域的标签。

其中,上述建立模块包括:建立单元,用于根据外包矩形建立RTree索引树。

上述装置还可以包括:删除模块,用于当地图比例缩小时,删除重叠的地图标签中优先级低的索引;显示模块,当地图比例放大时,从未显示的地图标签中选择优先级最高的地图标签,显示优先级最高的地图标签中与已显示的地图标签不重叠的地图标签并将其插入索引。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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