基于空间实体视图模型的要素标注的冲突检测与避让方法

文档序号:6600593阅读:678来源:国知局
专利名称:基于空间实体视图模型的要素标注的冲突检测与避让方法
技术领域
本发明涉及一种基于空间实体视图模型的要素标注的冲突检测与避让方法,属于 空间信息技术、计算机图形学、虚拟现实技术和计算机操作系统等领域。
背景技术
空间实体主要表达方式是通过电子地图来展示的,电子地图是将空间实体通过一 定的硬件和软件在电子屏幕上显示的可视地图,是空间实体在电子屏幕上符号化显示的过 程。给空间实体赋予的用于在电子地图上显示的属性和图示化信息,称之为要素。点实体 对应点要素,线实体对应线要素,面实体对应面要素。随着GIS技术的快速发展和广泛应用,空间数据呈爆炸式增长,特别是网络GIS应 用的公众化,使得对海量空间实体在网络环境下显示的网络电子地图的需求越来越迫切。电子地图中,要素的标注,是要素在电子地图上显示的极其重要的一部分。电子地 图显示要求遵循清晰、易读、美观、信息丰富和高效的原则,要能很好地解决要素标注问题, 最重要的是点、线、面等要素的标注的冲突检测与避让,要求各个标注之间不能有压盖,标 注不能压盖点要素,标注尽量避开线要素。目前要素标注的冲突检测与避让方法存在的问题是1、效率太低以及需要多次 读取空间数据和属性数据进行计算,无法满足海量空间数据在网络环境下电子地图的高效 显示,例如常用的局部搜索法,每次在进行几何计算前都会将所有相关的标注取出,计算完 毕后再将其释放掉。2、功能上不能满足要求,如网格法,类似于网格索引,是根据文字大小 计算出一个网格尺寸,将屏幕切分为若干个网格建立一个屏幕网格索引(采用的是屏幕坐 标)。但标注字体的大小往往不完全一样,如标志性要素及地名的标注字体一般较大,还有 要素的标注往往有倾斜角度,以及标注不能压盖点实体,同时又要尽量避开线实体,这些问 题上述所建立的网格法都不能解决,而且以一个文字的尺寸来划分网格,不能保证尽量多 地显示要素的标注信息,因为会有很多本应该能显示的标注被舍弃掉了。

发明内容
本发明的目的在于解决上述的技术问题,提供一种既能满足上述的功能要求,且 不需要多次读取和传输空间数据的效率非常高的基于空间实体视图模型的要素标注的冲 突检测与避让方法。本发明的目的通过以下技术方案来实现一种基于空间实体视图模型(简称“模型”)的要素标注的冲突检测与避让方法, 包括如下步骤1)、初始化“模型”;2)、通过“模型”的像素操作模块将需要标注避让的要素进行栅格化;3)、通过“模型”进行要素标注的冲突检测和避让分析。具体来说
本发明步骤1)中初始化“模型”为通过“模型”的初始化模块给“模型”的栅格 数据赋初始值和给“模型”的控制参数赋值。将实际的视图模式赋值给“模型”的视图模式,视图模式包括二维视图模式和三维 视图模式;将实际显示的视图窗口的外包矩形赋值给“模型”视图窗口的外包矩形,它是显 示空间实体视图窗口的范围,如计算机屏幕显示电子地图的窗口的范围;根据视图窗口的 外包矩形给模型分配栅格数据,模型栅格数据结构的选取用2个比特位数据表示模型视 图窗口的一个像素,其中用第一个比特位表示是否有禁止标注压盖的要素在此像素上的栅 格化,第二个比特位表示是否有需要标注尽量避开压盖的要素在此像素上的栅格化;并给 分配的栅格数据赋初始值0 ;如果视图模式是二维视图模式
a)将客户端查询空间实体的矩形范围赋值给“模型”的查询空间实体的矩形范 围;b)计算出实际显示的视图窗口中空间实体的放大比例,计算方法是“模型”视图 窗口的外包矩形的宽度除以“模型”的查询空间实体的矩形的宽度所得的值和“模型”视图 窗口的外包矩形的高度除以“模型”的查询空间实体的矩形的高度所得的值中较小的作为 放大比例,将此放大比例赋值给“模型”视图中空间实体的放大比例,它表示空间实体在视 图窗口中显示的大小。如果视图模式是三维视图模式a)给视点参数赋值,视点参数包括1)视点在世界坐标系中的位置0(x。,y。,ζ。), x0, y。,Z0表示视点在世界坐标系中的三个分量;2)视点所观察的目标位置A(xa,ya, za) ;3) 虚拟照相机向上的向量up(xup,yup,zup)。通过视点参数可以确定一个变换矩阵,将世界坐标 系中的顶点坐标变换到视点坐标系下;b)给投影参数赋值,投影参数包括正交投影和透视投影;根据视图窗口的外包矩 形和投影参数确定视景体,视图窗口的外包矩形决定视景体的大小,投影参数决定视景体 的形状,如果投影参数为正交投影,则视景体为成直角的平行六面体,如果投影参数为透视 投影,则视景体为一个棱锥的平截台体(棱台)。当空间实体从世界坐标变换到视点坐标以 后,空间实体在视景体内的,经过投影将落在视图内而被显示;空间实体在视景体外的,则 被裁剪掉;在基于深度的显示操作中,用视景体裁剪掉在前裁剪面之前以及在后裁剪面之 后的空间实体,因此根据具体情况,有的还需要设置视景体的视角、近裁剪面到视点的距离 和远裁剪面到视点的距离等参数。步骤2),通过“模型”的像素操作模块,将禁止标注压盖的要素在栅格数据的第 一个比特位上栅格化,将需要标注尽量避开压盖的要素在栅格数据的第二个比特位上栅格 化。步骤3),通过“模型”进行要素标注的冲突检测和避让分析①获得要素的标注字符串,根据文本属性获得标注字符串的宽度和高度(像素坐 标);②根据要素标注的显示规则(优先显示的位置)来依次生成恰好包含标注字符串 的几何面标注区域;③根据几何面的绘图方法,通过“模型”的像素操作模块,寻找出几何面所要绘制的像素中,其第一个比特位都是O、第二个比特位为1的像素个数最少的几何面作为标注显示的区域;④如果没有找到几何面标注区域,此要素的标注则不显示,如果找到,则将此标注 显示区域的每个像素的第一个比特位的值设为1。本发明的有益效果主要体现在1、计算量小,效率高,并且不需要多次读取空间数 据和属性数据进行计算。2、能支持复杂的分析判断,满足电子地图要素标注各项要求。


下面结合附图对本发明技术方案作进一步说明图1 本发明基于空间实体视图模型的要素标注冲突检测和避让方法的流程示意 图。图2 本发明基于空间实体视图模型的标注区域选定的第一实施例的示意图。
具体实施例方式本发明基于一种空间实体视图模型,简单来说,即空间实体视图模型能模拟实际 的视图窗口环境,预先对空间实体的空间数据进行分析和选取,进而仅将有用的空间数据 传输至实际的视图窗口。其空间实体视图模型至少包括1)数据结构栅格数据结构,模型中用栅格数据来表示二维栅格图像,把视图窗 口平面划分成均勻的网格,每个网格单元称为像素,栅格数据结构就是像素阵列,栅格中的 每个像素是栅格数据中最基本的信息存储单元,其坐标位置可以用行号和列号确定。由于 栅格数据是按一定规则排列的,所以表示的实体位置关系是隐含在行号、列号之中的。每个 像素值用于代表空间实体的属性或属性的编码。2)模型的控制参数(约束条件)包括视图模式,视图窗口的外包矩形(像素坐 标),视图中空间实体的放大比例,空间实体的查询范围矩形,视点参数,投影参数。3)模型的控制模块包括初始化模块,用于给“模型”的栅格数据赋初始值和给 “模型”的控制参数赋值;坐标变换模块,用于将矢量数据的原始坐标系下的坐标点根据“模 型”的控制参数变换为视图窗口坐标系下的坐标点;像素操作模块,用于给像素赋值(栅格 化)、读取和判定像素值。如图1所示,本发明的基于“模型”的要素标注方法在执行前必须首先初始化所述 的“模型”,即通过“模型”的初始化模块用于给“模型”的栅格数据赋初始值和给“模型”的 控制参数赋值。具体包括将实际的视图模式赋值给“模型”的视图模式,视图模式包括二维视图 模式和三维视图模式;将实际显示的视图窗口的外包矩形赋值给“模型”视图窗口的外包矩 形,它是显示空间实体视图窗口的范围,如计算机屏幕显示电子地图的窗口的范围;根据视 图窗口的外包矩形给模型分配栅格数据,模型栅格数据结构的选取用2个比特位数据表 示模型视图窗口的一个像素,其中用第一个比特位表示是否有禁止标注压盖的要素在此像 素上的栅格化,第二个比特位表示是否有需要标注尽量避开压盖的要素在此像素上的栅格 化。并给分配的栅格数据赋初始值0。如果视图模式是二维视图模式
a)将客户端查询空间实体的矩形范围赋值给“模型”的查询空间实体的矩形范 围;b)计算出实际显示的视图窗口中空间实体的放大比例,计算方法是“模型”视图 窗口的外包矩形的宽度除以“模型”的查询空间实体的矩形的宽度所得的值和“模型”视图 窗口的外包矩形的高度除以“模型”的查询空间实体的矩形的高度所得的值中较小的作为 放大比例,将此放大比例赋值给“模型”视图中空间实体的放大比例,它表示空间实体在视 图窗口中显示的大小。如果视图模式是三维视图模式
a)给视点参数赋值,视点参数包括1)视点在世界坐标系中的位置0(x。,y。,ζ。), x0, y。,Z0表示视点在世界坐标系中的三个分量;2)视点所观察的目标位置A(xa,ya, za) ;3) 虚拟照相机向上的向量up(xup,yup,zup)。通过视点参数可以确定一个变换矩阵,将世界坐标 系中的顶点坐标变换到视点坐标系下;b)给投影参数赋值,投影参数包括正交投影和透视投影;根据视图窗口的外包矩 形和投影参数确定视景体,视图窗口的外包矩形决定视景体的大小,投影参数决定视景体 的形状,如果投影参数为正交投影,则视景体为成直角的平行六面体,如果投影参数为透视 投影,则视景体为一个棱锥的平截台体(棱台)。当空间实体从世界坐标变换到视点坐标以 后,空间实体在视景体内的,经过投影将落在视图内而被显示;空间实体在视景体外的,则 被裁剪掉;在基于深度的显示操作中,用视景体裁剪掉在前裁剪面之前以及在后裁剪面之 后的空间实体,因此根据具体情况,有的还需要设置视景体的视角、近裁剪面到视点的距离 和远裁剪面到视点的距离等参数。当完成上述“模型”准备步骤后,接着按顺序完成下述步骤步骤一、通过“模型”的像素操作模块,将禁止标注压盖的要素在栅格数据的第一 个比特位上栅格化,将需要标注尽量避开压盖的要素在栅格数据的第二个比特位上栅格 化。步骤二、通过“模型”进行要素标注的冲突检测和避让分析< 一 >获得要素的标注字符串,根据文本属性获得标注字符串的宽度和高度(像素 坐标);< 二 >根据要素标注的显示规则(优先显示的位置)来依次生成恰好包含标注字 符串的几何面标注区域;<三 > 根据几何面的绘图方法,通过“模型”的像素操作模块,寻找出几何面所要绘 制的像素中,其第一个比特位都是0、第二个比特位为1的像素个数最少的几何面作为标注 显示的区域。需要说明的是,如果没有找到几何面标注区域,此要素的标注则不显示,如果找 至IJ,则将此标注显示区域的每个像素的第一个比特位的值设为1。下面参照图2举例具体说明图2为点要素标注显示规则中的一种,图中位置1表示此位置优先级最高,2次之, 0表示此位置禁止放置标注。中间白色矩形为点要素显示的区域。具体来讲,假设点要素显示的区域左上角的坐标点为Pl (XI,Yl),右下角的坐标 点为P2(X2,Y2),其中Y2大于Y1,字符串的宽度为width,高度为height,标注的矩形区域LR(LP1,LP2),其中左上角的坐标点LPl (LXl,LYl),右下角的坐标点LP2(LX2,LY2)。标注 的显示区域设为LR',LR'的初始值设为空。具体步骤如下1、计算优先级别最高的放置位置的标注的矩形区域LXl = X2,LYl = Yl+(Y2-Yl)/2-height/2LX2 = LXl+widthLY2 = LYl+height2、通过“模型”的像素操作模块和矩形区域的绘图算法,判定矩形区域LR所包 含的像素的值,如果所有的像素的第一个比特位都是0,则将区域LR赋值给LR',同时记 录矩形区域LR所包含的像素的第二个比特位为1的像素个数,假设为linePixel,如果 IinePixel也为0,则此区域LR就是标注的显示区域,并执行步骤3 ;否则执行下列操作(1)、往下寻找①往下移动1个像素的坐标,即LYl = LY1+1,LY2 = LY2+1,如果LY2的值大于 Y2+height的值则停止向下寻找,执行步骤(2)。否则判定矩形区域LR所包含的像素的值, 如果所有像素的第一个比特位都是0,则记录矩形区域LR所包含的像素的第二个比特位为 1的像素个数,如果小于linePixel,则将此值赋给linePixel,并将此标注的矩形区域赋给 LR'②如果linePixel等于0,则此区域LR'就是标注的显示区域,执行步骤3,否则重 复执行①操作。(2)、如果往下寻找没有找到标注的显示区域,则步骤1处计算的位置往上寻找①往上移动1个像素的坐标,即LYl = LY1-1,LY2 = LY2-1,如果LYl的值小于 Yl-height的值则停止向上寻找,执行步骤3,否则判定矩形区域LR所包含的像素的值,如 果所有的像素的第一个比特位都是0,则记录矩形区域LR所包含的像素的第二个比特位为 1的像素个数,如果小于linePixel,则将此值赋给linePixel,并将此标注的矩形区域赋给 LR'②如果linePixel等于0,则此区域LR'就是标注的显示区域,否则重复执行①操作。3、如果LR'的值不为空,则LR'就是标注的显示区域,否则就是没有找到,此要 素的标注则不显示。需要说明的是,图2仅仅为了公示用以表明标注区域的选定方法,本发明还可包 括其他标注显示规则,凡采用等同替换或者等效变换而形成的所有技术方案,均落在本发 明要求保护的范围之内。
权利要求
一种基于空间实体视图模型的要素标注的冲突检测与避让方法,其特征在于包括如下步骤,1)、初始化空间实体视图模型;2)、通过空间实体视图模型的像素操作模块将需要标注避让的的要素进行栅格化;3)、通过空间实体视图模型进行要素标注的冲突检测和避让分析。
2.根据权利要求1所述的基于空间实体视图模型的要素标注的冲突检测与避让方法, 其特征在于所述空间实体视图模型至少包括栅格数据结构、模型的控制参数以及模型的 控制模块;所述栅格数据结构为像素阵列,所述像素为视图窗口平面划分成的均勻网格单元,所 述像素是栅格数据中最基本的信息存储单元,其坐标位置可以用行号和列号确定;所述模型的控制参数至少包括视图模式,视图窗口的外包矩形;所述视图模式包括二 维视图模式和三维视图模式,当模型的视图为二维视图模式时,所述控制参数至少还包括 查询空间实体的矩形范围和视图中空间实体的放大比例;当模型的视图为三维视图模式 时,所述控制参数至少还包括视点参数和投影参数;所述模型的控制模块包括初始化模块,用于给模型的栅格数据赋初始值和给模型的控 制参数赋值;坐标变换模块,用于将矢量数据的原始坐标系下的坐标点根据模型的控制参 数变换为视图窗口坐标系下的坐标点;像素操作模块,用于给模型的像素赋值,以及读取和 判定像素值。
3.根据权利要求2所述的基于空间实体视图模型的要素标注的冲突检测与避让方法, 其特征在于所述初始化空间实体视图模型包括通过空间实体视图模型的初始化模块给空 间实体视图模型的栅格数据赋初始值和给空间实体视图模型的控制参数赋值。
4.根据权利要求3所述的基于空间实体视图模型的要素标注的冲突检测与避让方法, 其特征在于所述初始化空间实体视图模型包括如下步骤,(1)给视图模式赋值为二维视图模式;(2)给显示空间实体视图窗口范围的视图窗口外包矩形赋值;(3)根据视图窗口的外包矩形给模型分配栅格数据;(4)给分配的栅格数据赋初始值;(5)给查询空间实体的矩形范围赋值,用于将此范围内的空间实体显示在视图窗口中;(6)给视图中空间实体的放大比例赋值。
5.根据权利要求4所述的基于空间实体视图模型的要素标注的冲突检测与避让方法, 其特征在于所述空间实体视图模型的视图中空间实体的放大比例赋值步骤中,包括如下 步骤,(1)比较视图窗口的外包矩形的宽度除以查询空间实体的矩形的宽度所得的值和视图 窗口的外包矩形的高度除以查询空间实体的矩形的高度所得的值;(2)比较所得的较小的值作为空间实体的放大比例。
6.根据权利要求3所述的基于空间实体视图模型的要素标注的冲突检测与避让方法, 其特征在于所述初始化空间实体视图模型包括如下步骤,(1)给视图模式赋值为三维视图模式;(2)给显示空间实体视图窗口范围的视图窗口外包矩形赋值;(3)根据视图窗口的外包矩形给模型分配栅格数据;(4)给分配的栅格数据赋初始值;(5)给视点参数赋值,用于将世界坐标系中的顶点坐标变换到视点坐标系下;(6)给投影参数赋值,并根据视图窗口的外包矩形和投影参数确定视景体。
7.根据权利要求4至6所述的任意一种基于空间实体视图模型的要素标注的冲突检测 与避让方法,其特征在于所述模型栅格数据结构的分配选取方法为用2个比特位数据表 示模型视图窗口的一个像素,其中用第一个比特位表示是否有禁止标注压盖的要素在此像 素上的栅格化,第二个比特位表示是否有需要标注尽量避开压盖的要素在此像素上的栅格 化。
8.根据权利要求1所述的基于空间实体视图模型的要素标注的冲突检测与避让方法, 其特征在于所述步骤2)中,通过空间实体视图模型的像素操作模块,将禁止标注压盖的 要素在栅格数据的第一个比特位上栅格化,将需要标注尽量避开压盖的要素在栅格数据的 第二个比特位上栅格化。
9.根据权利要求1所述的基于空间实体视图模型的要素标注的冲突检测与避让方法, 其特征在于所述步骤3)通过空间实体视图模型进行要素标注的冲突检测和避让分析的 步骤包括,①获得要素的标注字符串,根据文本属性获得标注字符串的宽度和高度;②根据要素标注的优先显示的位置来依次生成恰好包含标注字符串的几何面标注区域;③根据几何面的绘图方法,通过空间实体视图模型的像素操作模块,寻找出几何面所 要绘制的像素中,其第一个比特位都是0、第二个比特位为1的像素个数最少的几何面作为 标注显示的区域。
10.根据权利要求9所述的基于空间实体视图模型的要素标注的冲突检测与避让方 法,其特征在于如果没有找到几何面标注区域,此要素的标注则不显示;如果找到几何面 标注区域,则将此标注显示区域的每个像素的第一个比特位的值设为1。
全文摘要
本发明提供了一种基于空间实体视图模型的要素标注的冲突检测与避让方法,通过空间实体视图模型中像素操作模块来进行要素标注的冲突检测与避让分析,最终找到要素标注的显示区域。本发明的有益效果主要体现在1、计算量小,效率高,并且不需要多次读取空间数据和属性数据进行计算。2、能支持复杂的分析判断,满足电子地图要素标注各项要求。
文档编号G06T11/00GK101833779SQ20101014410
公开日2010年9月15日 申请日期2010年3月21日 优先权日2010年3月21日
发明者董福田 申请人:董福田
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1