专利名称:空间实体要素标注的冲突检测与避让方法及装置的制作方法
技术领域:
本发明涉及空间信息技术、计算机图形学和计算机操作系统领域,尤其涉及空间 实体要素标注的冲突检测与避让方法及装置。
背景技术:
空间实体主要表示方式是通过电子地图来展示的,电子地图是将空间实体通过一 定的硬件和软件在电子屏幕上显示的可视地图,是空间实体在电子屏幕上符号化显示的过 程。给空间实体赋予的用于在电子地图上显示的属性和图示化信息,称之为要素。点实体 对应点要素,线实体对应线要素,面实体对应面要素。随着GIS (Geographic Information System,地理信息系统)技术的快速发展和广 泛应用,空间数据呈爆炸式增长,特别是网络GIS应用的公众化,使得对海量空间实体在网 络环境下显示的网络电子地图的需求越来越迫切。电子地图中,要素的标注,是要素在电子地图上显示的极其重要的一部分。电子地 图显示要求遵循清晰、易读、美观、信息丰富和高效的原则,要能很好地解决要素标注问题, 最重要的是点、线、面等要素的标注的冲突检测与避让,要求各个标注之间不能有压盖,标 注不能压盖点要素,标注尽量避开线要素。目前要素标注的冲突检测与避让方法存在的问题是1、效率太低以及需要多次 读取空间数据和属性数据进行计算,无法满足海量空间数据在网络环境下电子地图的高效 显示,例如常用的局部搜索法,每次在进行几何计算前都会将所有相关的标注取出,计算完 毕后再将其释放掉。2、功能上不能满足要求,如网格法,类似于网格索引,是根据文字大小 计算出一个网格尺寸,将屏幕切分为若干个网格建立一个屏幕网格索引(采用的是屏幕坐 标)。但标注字体的大小往往不完全一样,如标志性要素及地名的标注字体一般较大,还有 要素的标注往往有倾斜角度,以及标注不能压盖点实体,同时又要尽量避开线实体,这些问 题上述所建立的网格法都不能解决,而且以一个文字的尺寸来划分网格,不能保证尽量多 地显示要素的标注信息,因为会有很多本应该能显示的标注被舍弃掉了。
发明内容
有鉴于此,本发明提供一种空间实体要素标注的冲突检测与避让方法及装置,其 具体方案如下一种空间实体要素标注的冲突检测与避让方法,包括依据预先设定的视图控制参数,将原始要素的空间数据的原始坐标变换得到视图 窗口的视图坐标;在所述视图窗口上栅格化需要标注避让的要素;根据所述视图坐标分析所述原始要素的标注,确定与所述标注对应的符合预设显 示条件的面标注区域为所述标注的标注显示区域。优选的,所述视图窗口利用数据结构依据所述视图控制参数进行表示,具体为
依据所述视图控制参数用所述栅格数据结构来表示所述视图窗口的像素,所述像 素为所述视图窗口平面划分成的均勻网格单元,所述像素为所述栅格数据中的基本信息存 储单元,所述像素的坐标放置位置依据所述像素在所述视图窗口中对应的行号和列号确 定,设定表示所述像素的栅格数据的初始值全部为0。优选的,所述在所述视图窗口上栅格化需要标注避让的要素的过程包括分析所述需要标注避让的要素的避让类型,当所述避让类型为禁止标注压盖时, 将所述要素对应在所述视图窗口显示时需要绘制的像素中用于标识禁止标注压盖的比特 位赋值为1,当所述避让类型为尽量避开压盖时,将所述要素对应在所述视图窗口显示时需 要绘制的像素中用于标识尽量避开压盖的比特位赋值为1。优选的,所述预设显示条件为所述面标注区域内的像素值中用于标识禁止标注 压盖的比特位全部为0且用于标识尽量避开压盖的比特位为1的个数最少。优选的,所述根据所述视图坐标分析所述原始要素的标注,确定与所述标注对应 的符合预设显示条件的面标注区域为所述标注的标注显示区域的过程包括生成与所述要素的标注对应的面标注区域;判断所述面标注区域是否符合所述预设显示条件,若是,则确定所述面标注区域 为标注显示区域,若否,则确定所述面标注区域为非标注显示区域。优选的,所述确定符合预设显示条件的面标注区域为标注显示区域后还包括根据所述标注避让的类型,将所述标注显示区域对应的所述视图窗口的像素值中 用于标识所述标注避让类型的比特位赋值为1。优选的,所述生成与所述原始要素的标注对应的面标注区域的过程包括获取所述要素的标注字符串;依据所述标注字符串的文本属性获得所述标注字符串的高度和宽度;按照要素标注的显示规则生成包含所述标注字符串的面标注区域。优选的,所述判断所述面标注区域是否符合所述预设显示条件的过程包括根据所述标注的显示规则,在所述要素标注能够显示的范围内,先按照标注显示 的优先级别最高的位置生成面标注区域;判断所述优先级别最高的位置的面标注区域内的像素中用于标识禁止标注压盖 的比特位是否全部为0且用于标识尽量避开压盖的比特位为1的个数是否也为0,若全部 为0,则确定所述面标注区域为标注显示区域,并结束,若用于标识禁止标注压盖的比特位 全部为0且用于标识尽量避开压盖的比特位为1的个数不为0,则记录比特位为1的个数;按照标注显示的优先级别由高到低的顺序,依次生成当前面标注区域,判断所述 当前面标注区域内的像素中用于标识禁止标注压盖的比特位是否全部为0且用于标识尽 量避开压盖的比特位为1的个数是否也为0,若全部为0,则确定所述面标注区域为标注显 示区域,并结束,若用于标识禁止标注压盖的比特位全部为0且用于标识尽量避开压盖的 比特位为1的个数不为0,则记录当前比特位为1的个数,直到判断完在所述要素标注能够 显示的范围内要素标注按照显示规则所能显示的所有区域;若存在所述记录比特位为1的个数的面标注区域,则将所述记录的比特位为1的 个数最少的面标注区域确定为标注显示区域,否则,所述要素的标注没有标注显示区域。优选的,所述坐标变换步骤后,和所述在所述视图窗口上栅格化需要标注避让的要素步骤前,还包括在所述视图窗口化简所述视图坐标对应的原始空间数据。一种空间实体要素标注的冲突检测与避让装置,包括坐标变换单元,用于依据预先设定的视图控制参数,将原始要素的空间数据的原 始坐标变换得到视图窗口的视图坐标;栅格化单元,用于在所述视图窗口上栅格化需要标注避让的要素;标注显示区域确定单元,用于根据所述视图坐标分析所述原始要素的标注,确定 与所述标注对应的符合预设显示条件的面标注区域为所述标注的标注显示区域。从上述的技术方案可以看出,本发明实施例公开的空间实体要素标注的冲突检测 与避让方法中,将要素的原始坐标转换到依据实际显示的视图窗口的视图控制参数进行表 示的视图窗口下的视图坐标,各个视图坐标的空间关系在该视图窗口下能够进行直观体 现,在该窗口下对其进行分析,简化了分析过程,将符合显示条件的区域作为显示区域,保 证了标注显示遵循电子地图的显示原则,避免了利用现有的分析方法,将能够显示的标注 舍弃而造成的显示有效性低的问题。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1为本发明实施例公开的一种空间实体要素标注的冲突检测与避让方法的流 程图;图2为本发明实施例公开的又一空间实体要素标注的冲突检测与避让方法的流 程图;图3为本发明实施例公开的又一空间实体要素标注的冲突检测与避让方法的流 程图;图4为本发明实施例公开的点要素标注的显示规则的示意图;图5为本发明实施例公开的又一空间实体要素标注的冲突检测与避让方法的流 程图;图6为本发明实施例公开的空间实体要素标注的冲突检测与避让装置的结构示 意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。本发明还公开了一种空间实体要素标注的冲突检测与避让方法。
具体实施方式
如 下所述,为了方便描述,本申请文件中将需要处理的空间实体的要素称之为原始要素,将需要处理的要素的空间数据称之为原始要素的空间数据,需要处理的要素的空间数据的坐标 称之为原始要素的空间数据的原始坐标,需要处理的要素的空间数据的坐标点称之为原始 空间数据的原始坐标点,或直接称之为原始坐标点。本发明公开的空间实体要素标注的冲突检测与避让方法的流程如图1所示,包 括步骤S11、依据预先设定的视图控制参数,将原始要素的空间数据的原始坐标变换 得到视图窗口的视图坐标;将原始要素的空间数据的原始坐标变换到利用栅格数据结构依据预先设定的视 图控制参数进行表示的视图窗口下。该预先设定的视图控制参数为与实际进行显示的视图 窗口相对应的参数,利用该参数可以表示与实际视图窗口环境相同的视图环境。将视图坐 标点对应的像素值用预先设定的比特位进行表示,比特位可以为2位也可以为4位或者8 位,在此并不限定,将全部用于表示视图窗口的栅格数据的初始值设为0。本实施例中的视图控制参数包括视图模式和视图窗口的外包矩形参数。视图模 式即根据实际的视图窗口预先设定视图窗口为二维模式还是三维模式。视图窗口的外包矩 形参数是显示空间实体的视图窗口范围(0,0,ViewWidth,ViewHeight),如计算机屏幕地图 显示窗口的范围,包括视图窗口的外包矩形的宽度ViewWidth和视图窗口的外包矩形的 高度ViewHeight,通过这两个参数,可以确定实际视图窗口中用于显示图像的窗口的大小 范围。对于二维视图模式,其视图控制参数中除包括视图模式和视图窗口的外包矩形参数 外,还包括查询空间实体的矩形范围和视图中空间实体的放大比例或者空间实体在所述视 图窗口中的中心坐标点和视图中空间实体的放大比例,可以利用所述空间实体在所述视图 窗口下的中心坐标点替换查询空间实体的矩形范围,只要能实现将原始空间数据的原始坐 标变换得到视图窗口的视图坐标即可。查询空间实体的矩形范围是指将此范围内的空间实 体显示在视图窗口中,也就是在视图窗口中能显示出来的空间实体的外包矩形,其具体的 范围值根据实际的显示情况而设定。对于三维视图模式,其视图控制参数中除包括视图模 式和视图窗口的外包矩形参数外,还包括视点参数和投影参数,所述视点参数包括视点在 预先设定的世界坐标系中的放置位置0(x。,y。,z0),x0, y。,Z0表示视点在世界坐标系中的三 个分量,视点所观察的目标放置位置A (xa, ya,za)和虚拟照相机向上的向量up (xup, yup,zup); 所述投影参数包括正交投影和透视投影。或者是依据上述参数获得的视图矩阵和投影矩 阵,利用视图矩阵和投影矩阵进行坐标变换。依据上述视图控制参数,利用坐标变换方法即 可将原始要素的空间数据的原始坐标变换得到视图窗口的视图坐标。确定视图控制参数后,利用数据结构依据视图控制参数表示视图窗口。此处所述 的表示视图窗口可以为实际可以进行显示的物理视图窗口,也可以是为了进行分析而生成 的逻辑视图窗口环境。当利用栅格数据结构来表示视图窗口时,用栅格数据来表示二维栅格图像,把显 示视图窗口平面划分成均勻的网格,每个网格单元称为像素,栅格数据结构就是像素阵列, 栅格中的每个像素是栅格数据中最基本的信息存储单元,其坐标放置位置可以用行号和列 号确定。由于栅格数据是按一定规则排列的,所以表示的空间实体放置位置关系是隐含在 行号、列号之中的。每个像素值用于代表空间实体的属性或属性的编码。通过视图控制参数中的视图窗口的外包矩形参数可以得到用于表示视图窗口的栅格数据的大小。如用m个字节表示一个像素值,则表示视图窗口的栅格数据的大小为 (VieWWidth*ViewHeight*m),并且将用于表示视图窗口的栅格数据的初始值赋值为0。依据预先设定的视图控制参数,将原始要素的空间数据的原始坐标变换得到视图 窗口坐标系下的视图坐标,原始空间数据的原始坐标点对应视图窗口坐标系下的视图坐标 点,每个视图坐标点与用栅格数据依据视图控制参数所表示的视图窗口的像素相对应,通 过分析或者处理所述视图坐标、分析或者处理所述视图坐标点所对应的所述视图窗口的像 素、分析或者处理空间实体在所述视图窗口上显示时需要绘制的像素来分析空间实体在实 际进行显示的视图窗口上的显示情况等一种或几种分析处理方法相结合来分析或者处理 所述视图坐标,以实现分析原始要素的标注,看是否具有与其对应的标注显示区域的目的。步骤S12、在所述视图窗口上栅格化需要标注避让的要素;首先需要判断要素中是否有需要进行标注避让的要素,如果有,分析所述需要标 注避让的要素的避让类型,比如点要素,其避让类型一般为禁止标注压盖,需要将所述点要 素对应在所述视图窗口显示时需要绘制的像素中用于标识禁止标注压盖的比特位赋值为 1,比如线要素,则其避让类型一般为尽量避开压盖,将所述线要素对应在所述视图窗口显 示时需要绘制的像素中用于标识尽量避开压盖的比特位赋值为1。本实施例中对要素在所述视图窗口上进行显示时所需要绘制的像素进行相应的 分析或处理,其具体操作包括读取所述需要绘制的像素的像素值,判断像素值,和给所述 需要绘制的像素赋值。上述操作可以以单个像素或者将多个像素进行组合后进行处理,可 以根据实际情况的需要,灵活的设定具体的处理方式。其针对像素的具体操作包括给像素 赋值,即将要素的空间数据进行栅格化、读取像素和对像素值进行判定,当像素以多个比特 位数据来进行表示时,对像素的赋值可以表现为对一个像素整体赋值或者对表示像素的多 个比特位数据中的任意一个或多个比特位进行赋值;读取像素的操作也可以表现为对一个 像素的整体值进行读取和读取像素中某个或某几个比特位的值;同理,对像素值的判定也 为对一个像素的整体值或某个或某几个比特位的值所代表的含义进行判定。如用4个比特位数据表示视图窗口的一个像素,其中用第一个比特位表示是否有 点要素在此像素上栅格化,第二个比特位表示是否有线要素在此像素上栅格化,第三个比 特位是否有面要素在此像素上栅格化,第四个比特位用于空间矢量数据的化简。首先定义 几个常量#define point 0x0001#define line 0x0002#define region 0x0004#define simple 0x0008例如,对线空间实体所对应的像素操作方法如下所示像素的赋值操作用定义的常量line同像素值的或操作来对像素进行赋值,实现 原始空间数据的栅格化。如给P(x,y)像素线栅格化操作,P (x,y) = P (χ, y) Iline ;清除原 始空间数据栅格化操作,用定义的常量line进行取反后同像素值的与操作来清除,如清除 P(x,y)像素线栅格化操作,P(x,y) = P(x,y)& line。读取像素值P(x,y)的栅格数据的值就是P (χ,y)像素的值;像素值判定操作例如,判定像素是否被原始空间数据栅格化操作,用定义的常量line同像素值的与操作来判定。如判定P(x,y)像素是否被线要素栅格化操作,则判定P(x, y) &line的值是否大于0,如果大于0,则P (x, y)像素被线要素栅格化,如果等于0,则P (χ, y)像素没有被线要素栅格化。对于其它空间实体所对应的像素操作同样可以按照上述方法进行操作。步骤S13、根据所述视图坐标分析所述原始要素的标注,确定与所述标注对应的符 合预设显示条件的面标注区域为所述标注的标注显示区域。通过在视图窗口下分析要素对应的视图坐标判断是否有符合预设显示条件的面 标注区域将要素的标注进行显示。该预设显示条件可以为面标注区域内的像素值中用于 标识禁止标注压盖的比特位全部为0且用于标识尽量避开压盖的比特位为1的个数最少。 即表示,用于显示的区域中没有禁止标注压盖的要素,同时需要尽量避开压盖的要素尽可 能少,比如保证在不压盖点要素的前提下,尽量避开线要素。具体的预设显示条件可以根据 实际情况而设定。本实施例公开的空间实体要素标注的冲突检测与避让方法中,按照预设视图控制 参数将要素的空间数据的原始坐标变换得到视图窗口下的视图坐标,各个视图坐标的空间 关系在该视图窗口下能够进行直观体现,在该窗口下对其进行分析,简化了分析过程,将符 合显示条件的区域作为标注显示区域,保证了标注显示遵循电子地图的显示原则,避免了 利用现有的分析方法,将能够显示的标注舍弃而造成的显示有效性低的问题。本发明公开的又一空间实体要素标注的冲突检测与避让方法的流程如图2所示, 包括步骤S21、依据预先设定的视图控制参数,将原始要素的空间数据的原始坐标变换 得到视图窗口的视图坐标;步骤S22、在所述视图窗口化简所述视图坐标对应的原始空间数据;将符合化简条件的数据化简掉。步骤S23、在所述视图窗口上依据标注避让的类型,栅格化需要标注避让的要素;根据标注避让的类型,将要素对应的在所述视图窗口显示时需要绘制的像素中用 于标识所述标注避让类型的比特位赋值为1。本实施例中的像素值采用两个比特位进行表示,其中第一个比特位为用于标识禁 止标注压盖的比特位,第二个比特位为用于标识尽量避开压盖的比特位。所以本步骤中,依 据标注避让的类型,分别将第一个或第二个比特位赋值为1。步骤S24、在所述要素标注能够显示的范围内,根据所述标注的显示规则,生成所 述要素标注的面标注区域;步骤S25、判断所述面标注区域内是否符合预设显示条件,若符合,则执行步骤 S26a,若不符合,则执行步骤S26b ;步骤S^a、确定所述面标注区域为标注显示区域,执行步骤S27 ;步骤S26b、确定所述面标注区域为非标注显示区域,结束。步骤S27、根据标注避让的类型,将所述标注显示区域对应的所述视图窗口的像素 值中用于标识所述标注避让类型的比特位赋值为1。多数情况下,要素的标注的避让类型是禁止标注压盖的,此时,将所述标注显示区 域对应的所述视图窗口的像素值中用于标识禁止标注压盖的比特位全部赋值为1。
本实施例公开的空间实体要素标注的冲突检测与避让方法中,增加了将原始要素 的空间数据进行化简的过程,本步骤中的化简过程为将变换到视图窗口下的视图坐标在视 图窗口下进行分析并化简,其具体的分析过程为分析对应于同一个像素的视图坐标,判断 视图坐标是否符合化简条件,根据分析的结果,化简符合化简条件的视图坐标对应的原始 空间数据。该方法以模拟原始空间数据在与视图控制参数对应的视图窗口中实际显示的情 况为基础进行分析化简,能够保证化简后的空间数据在实际的显示窗口中进行无损显示, 并保证化简后的空间数据间的空间关系显示的正确性。具体内容请参考尚未公开的一项发 明名称为空间数据化简方法及装置的申请文件。依据上述实施例中的化简方法,将符合化 简条件的数据化简掉,同时化简掉其对应的要素,保证了化简后的要素的无损显示,以及空 间关系的正确性,同时提高了要素在所述视图窗口栅格化的效率。本发明实施例公开的又一空间实体要素标注的冲突检测与避让方法的流程如图3 所示,包括步骤S31、依据预先设定的视图控制参数,将原始要素的空间数据的原始坐标变换 得到视图窗口的视图坐标;步骤S32、在所述视图窗口上依据标注避让的类型,栅格化需要标注避让的要素;步骤S33、获取所述原始要素的标注字符串;步骤S34、依据所述标注字符串的文本属性获得所述标注字符串的高度和宽度;步骤S35、按照要素标注的显示规则生成包含所述标注字符串的面标注区域;本实施例中的标注的显示规则即为按照优先显示的放置位置生成面标注区域, 首先生成优先级别最高放置位置处的面标注区域,然后按照预设选取规则选取放置位置, 生成与其对应的面标注区域,直到将有效的选取范围内放置位置对应的面标注区域全部生 成。其标注的显示规则依据进行分析的要素类型进行选取,如为点要素,则其对应点要素标 注的显示规则,如为线要素,则其对应线要素标注的显示规则。上述的预设选取规则在有效的选取范围内选取放置位置的过程可以为按照将所 述优先级别最高放置位置处的面标注区域向下移动一个像素坐标的顺序,依次选取下一放 置位置,直到生成的面标注区域的右下角坐标点坐标大于所述点要素显示区域的右下角坐 标与所述字符串的高度和,然后按照将所述优先级别最高放置位置处的面标注区域向上移 动一个像素坐标的顺序,依次选取下一放置位置,直到生成的面标注区域的左上角坐标点 坐标小于所述点要素显示区域的左上角坐标与所述字符串的高度差。同样也可以先按照将 所述优先级别最高放置位置处的面标注区域向上移动一个像素坐标的顺序选取下一放置 位置,再按照优先级别最高放置位置处的面标注区域向下移动一个像素坐标的顺序选取下 一放置位置的方式,其具体的选取顺序可以根据实际情况自行设定。步骤S36、判断所述面标注区域内是否符合预设显示条件,若符合,则执行步骤 S37a,若不符合,则执行步骤S37b ;本实施例中,当面标注区域内的像素值中用于标识禁止标注压盖的比特位全部为 0且用于标识尽量避开压盖的比特位为1的个数最少时,符合预设显示条件。其判别过程可 以为先判别面标注区域内的像素中的用于标识禁止标注压盖的比特位是否全部为0,如果 不为0,则说明不符合条件,如果为0,则进一步判断用于标识尽量避开压盖的比特位是否 全部为0,如果为0,则可直接确定其为标注显示区域,如果不为0,则需选取用于标识尽量避开压盖的比特位为1的个数最少的面标注区域为标注显示区域。步骤S37a、确定所述面标注区域为标注显示区域;步骤S37b、确定所述面标注区域为非标注显示区域。步骤S38、根据标注避让的类型,将所述标注显示区域对应的所述视图窗口的像素 值中用于标识所述标注避让类型的比特位赋值为1。多数情况下,要素的标注的避让类型是禁止标注压盖的,此时,利用上述像素操 作,将标注显示区域对应的所述视图窗口的像素值中用于标识禁止标注压盖的比特位全部 赋值为1,以表示此区域已经有要素标注进行显示,避免后续的分析过程中将已经有要素标 注显示的区域确定为标注显示区域,造成要素标注的压盖,影响显示效果。进一步的,判断所述面标注区域内是否符合预设显示条件的过程为根据所述标注的显示规则,在所述要素标注能够显示的范围内,先按照标注显示 的优先级别最高的位置生成面标注区域;判断所述优先级别最高的位置的面标注区域内的像素中用于标识禁止标注压盖 的比特位是否全部为0且用于标识尽量避开压盖的比特位为1的个数是否也为0,若全部 为0,则确定所述面标注区域为标注显示区域,并结束,若用于标识禁止标注压盖的比特位 全部为0且用于标识尽量避开压盖的比特位为1的个数不为0,则记录比特位为1的个数;按照标注显示的优先级别由高到低的顺序,依次生成当前面标注区域,判断所述 当前面标注区域内的像素中用于标识禁止标注压盖的比特位是否全部为0且用于标识尽 量避开压盖的比特位为1的个数是否也为0,若全部为0,则确定所述面标注区域为标注显 示区域,并结束,若用于标识禁止标注压盖的比特位全部为0且用于标识尽量避开压盖的 比特位为1的个数不为0,则记录当前比特位为1的个数,直到判断完在所述要素标注能够 显示的范围内要素标注按照显示规则所能显示的所有区域;若存在所述记录的比特位为1的个数的面标注区域,则将所述记录的比特位为1 的个数最少的面标注区域为标注显示区域,否则,所述要素的标注没有标注显示区域。本实施例中的像素值采用两个比特位进行表示,其中第一个比特位为用于标识禁 止标注压盖的比特位,第二个比特位为用于标识尽量避开压盖的比特位。下面将以实际的例子对上述过程进行说明。当标注的显示规则为点要素标注的显 示规则时,如图4中所示,放置位置1表示此放置位置的优先级最高,放置位置2次之,放置 位置0表示此放置位置禁止放置标注。假设点要素显示的区域左上角的坐标点为Pl (XI,Yl),右下角的坐标点为P2(X2, Y2),其中Y2大于Yl,字符串的宽度为width,高度为height,面标注区域LR(LPl,LP2),其 中左上角的坐标点LPl (LX1,LY1),右下角的坐标点LP2(LX2,LY2),标注的显示区域设为 LR'。其具体的生成面标注区域,并且确定符合预设显示条件的面标注区域为标注显示 区域的过程如图5所示,包括步骤S51、设定优先级别最高放置位置为当前放置位置,生成优先级别最高放置位 置对应的面标注区域,作为当前面标注区域;其具体过程为令LXl = X2, LYl = Yl, LX2 = LXl+width, LY2 = LYl+height ;则 面标注区域为当前的LR(LP1,LP2)。
步骤S52、判断所述当前面标注区域在所述视图窗口上显示时需要绘制的像素的 第一个比特位是否全部为0,若是,则执行步骤S53,若否,则执行步骤S55 ;第一个比特位全部为0,说明该区域中不存在禁止压盖的要素。步骤S53、判断所述面标注区域内的第二个比特位是否全部为0;若是,则执行步 骤S513,若否,则执行步骤S54 ;第二个比特位也全部为0即第二个比特位为1的个数为0,即该区域中不存在尽量 避开压盖的要素。如果符合该条件,则此时的面标注区域可以作为标注显示区域。步骤S54、记录第二个比特位为1的个数;步骤S55、将所述当前放置位置的面标注区域向下移动一个像素坐标,作为当前面 标注区域;即 LYl = LY1+1,LY2 = LY2+1。步骤S56、判定所述当前面标注区域是否超出有效选取范围,若超出,则执行步骤 S57,若没有超出,则返回执行步骤S52 ;当前面标注区域没有超出有效选取范围,则说明在所述要素标注能够显示的范围 内还存在要素标注按照显示规则所能显示的区域,则可继续执行。即判断LY2的值是否大于Y2^eight的值,如果大于,则超出范围,如果不大于,则 没有超出范围。步骤S57、将所述优先级别最高放置位置的面标注区域向上移动一个像素坐标,作 为当前面标注区域;即 LYl = Yl-I,LY2 = LYl+height。步骤S58、判定所述当前面标注区域是否超出有效选取范围,若超出,则执行步骤 S514,若没有超出,则执行步骤S59 ;若超出有效选取范围,则说明在所述要素标注能够显示的范围内已经判断完要素 标注按照显示规则所能显示的所有区域。步骤S59、判断所述当前面标注区域在所述视图窗口上显示时需要绘制的像素的 第一个比特位是否全部为0,若是,则执行步骤S510,若否,则执行步骤S512 ;步骤S510、判断所述面标注区域内的第二个比特位是否全部为0,若是,则执行步 骤S513,若否,则执行步骤S511 ;步骤S511、记录第二个比特位为1的个数;步骤S512、将所述当前放置位置的面标注区域向上移动一个像素坐标,作为当前 面标注区域,返回执行步骤S58 ;即 LYl = LY1-1,LY2 = LY2-1,步骤S513、确定所述面标注区域为标注显示区域,结束;步骤S514、判断记录的第一个比特位全部为0的面标注显示区域的个数是否为0, 若是,则执行步骤S515,若否,则执行步骤S516 ;步骤S515、确定所述要素的标注不存在标注显示区域。步骤S516、确定所述记录的第二个比特位为1的个数最少的面标注区域为标注显 示区域。本发明同时公开了一种空间实体要素标注的冲突检测与避让装置,其结构如图6所示,包括坐标变换单元61、栅格化单元62和标注显示区域确定单元63。其中,坐标变换 单元61用于依据预先设定的视图控制参数,将原始要素的空间数据的原始坐标变换得到 视图窗口的视图坐标;栅格化单元62用于在所述视图窗口上栅格化需要标注避让的要素, 即根据标注避让的类型,将在所述视图窗口显示时需要绘制的像素值中用于标识所述标注 避让类型的比特位赋值为1 ;标注显示区域确定单元63用于根据所述视图坐标分析所述原 始要素的标注,确定与所述标注对应的符合预设显示条件的面标注区域为所述标注的标注 显示区域。本实施例公开的空间实体要素标注的冲突检测与避让装置中各个单元的工作过 程如下所述坐标变换单元将需要进行冲突检测与避让分析的要素的空间数据原始坐标点进 行坐标变换,将其转换到利用数据结构依照预先设定的视图控制参数进行表示的视图窗口 的视图坐标点,在表示视图窗口的数据上,栅格化单元将需要进行标注避让的要素对应的 在所述视图窗口显示时需要绘制的像素进行赋值,即根据标注避让的类型,将要素在所述 视图窗口显示时需要绘制的像素值中用于标识所述标注避让类型的比特位赋值为1,标注 显示区域确定单元依据视图窗口中的视图坐标分析原始要素的标注,看其是否具有符合显 示条件可以作为标注显示区域的面标注区域,即生成的与该要素的标注对应的面标注区域 中,是否存在像素值中用于标识禁止标注压盖的比特位全部为0且用于标识尽量避开压盖 的比特位为1的个数最少的面标注区域,如果存在,则将该面标注区域确定为标注显示区 域,在该标注显示区域内,将标注进行显示,并根据该要素的标注避让的类型,将所述标注 显示区域对应的所述视图窗口的像素值中用于标识所述标注避让类型的比特位赋值为1, 如果不存在,则说明该标注不能进行显示。本实施例公开的空间实体要素标注的冲突检测与避让装置的执行过程为对应于 上述本发明实施例所公开的方法实施例流程,为较佳的装置实施例,其具体执行过程可参 见上述方法实施例,在此不再赘述。本发明公开的空间实体要素标注的冲突检测与避让装置可以设置在计算机内,也 可以设置在手机或其他可以使用本发明的设备内,或者是其他智能设备。其既可以设置在 服务器端,在将客户端请求的数据发送之前,首先对空间数据进行处理,也可将其设置在客 户端,在将其发送到实际的视图窗口前,将数据进行处理,或者同时设置在服务器和客户 端,根据实际情况选择由哪一方或者双方共同进行处理。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置 而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说 明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元 及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和 软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些 功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业 技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应 认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执 行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存 储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术 领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。
权利要求
1.一种空间实体要素标注的冲突检测与避让方法,其特征在于,包括依据预先设定的视图控制参数,将原始要素的空间数据的原始坐标变换得到视图窗口 的视图坐标;在所述视图窗口上栅格化需要标注避让的要素;根据所述视图坐标分析所述原始要素的标注,确定与所述标注对应的符合预设显示条 件的面标注区域为所述标注的标注显示区域。
2.根据权利要求1所述的方法,其特征在于,所述视图窗口利用数据结构依据所述视 图控制参数进行表示,具体为依据所述视图控制参数用所述栅格数据结构来表示所述视图窗口的像素,所述像素为 所述视图窗口平面划分成的均勻网格单元,所述像素为所述栅格数据中的基本信息存储单 元,所述像素的坐标放置位置依据所述像素在所述视图窗口中对应的行号和列号确定,设 定表示所述像素的栅格数据的初始值全部为0。
3.根据权利要求2所述的方法,其特征在于,所述在所述视图窗口上栅格化需要标注 避让的要素的过程包括分析所述需要标注避让的要素的避让类型,当所述避让类型为禁止标注压盖时,将所 述要素对应在所述视图窗口显示时需要绘制的像素中用于标识禁止标注压盖的比特位赋 值为1,当所述避让类型为尽量避开压盖时,将所述要素对应在所述视图窗口显示时需要绘 制的像素中用于标识尽量避开压盖的比特位赋值为1。
4.根据权利要求3所述的方法,其特征在于,所述预设显示条件为所述面标注区域内 的像素值中用于标识禁止标注压盖的比特位全部为0且用于标识尽量避开压盖的比特位 为1的个数最少。
5.根据权利要求4所述的方法,其特征在于,所述根据所述视图坐标分析所述原始要 素的标注,确定与所述标注对应的符合预设显示条件的面标注区域为所述标注的标注显示 区域的过程包括生成与所述要素的标注对应的面标注区域;判断所述面标注区域是否符合所述预设显示条件,若是,则确定所述面标注区域为标 注显示区域,若否,则确定所述面标注区域为非标注显示区域。
6.根据权利要求5所述的方法,其特征在于,所述确定符合预设显示条件的面标注区 域为标注显示区域后还包括根据所述标注避让的类型,将所述标注显示区域对应的所述视图窗口的像素值中用于 标识所述标注避让类型的比特位赋值为1。
7.根据权利要求6所述的方法,其特征在于,所述生成与所述原始要素的标注对应的 面标注区域的过程包括获取所述要素的标注字符串;依据所述标注字符串的文本属性获得所述标注字符串的高度和宽度;按照要素标注的显示规则生成包含所述标注字符串的面标注区域。
8.根据权利要求7所述的方法,其特征在于,所述判断所述面标注区域是否符合所述 预设显示条件的过程包括根据所述标注的显示规则,在所述要素标注能够显示的范围内,先按照标注显示的优先级别最高的位置生成面标注区域;判断所述优先级别最高的位置的面标注区域内的像素中用于标识禁止标注压盖的比 特位是否全部为0且用于标识尽量避开压盖的比特位为1的个数是否也为0,若全部为0, 则确定所述面标注区域为标注显示区域,并结束,若用于标识禁止标注压盖的比特位全部 为0且用于标识尽量避开压盖的比特位为1的个数不为0,则记录比特位为1的个数;按照标注显示的优先级别由高到低的顺序,依次生成当前面标注区域,判断所述当前 面标注区域内的像素中用于标识禁止标注压盖的比特位是否全部为0且用于标识尽量避 开压盖的比特位为1的个数是否也为0,若全部为0,则确定所述面标注区域为标注显示区 域,并结束,若用于标识禁止标注压盖的比特位全部为0且用于标识尽量避开压盖的比特 位为1的个数不为0,则记录当前比特位为1的个数,直到判断完在所述要素标注能够显示 的范围内要素标注按照显示规则所能显示的所有区域;若存在所述记录比特位为1的个数的面标注区域,则将所述记录的比特位为1的个数 最少的面标注区域确定为标注显示区域,否则,所述要素的标注没有标注显示区域。
9.根据权利要求8所述的方法,其特征在于,所述坐标变换步骤后,和所述在所述视图 窗口上栅格化需要标注避让的要素步骤前,还包括在所述视图窗口化简所述视图坐标对应的原始空间数据。
10.一种空间实体要素标注的冲突检测与避让装置,其特征在于,包括坐标变换单元,用于依据预先设定的视图控制参数,将原始要素的空间数据的原始坐 标变换得到视图窗口的视图坐标;栅格化单元,用于在所述视图窗口上栅格化需要标注避让的要素; 标注显示区域确定单元,用于根据所述视图坐标分析所述原始要素的标注,确定与所 述标注对应的符合预设显示条件的面标注区域为所述标注的标注显示区域。
全文摘要
本发明公开了一种空间实体要素标注的冲突检测与避让方法及装置,该方法包括依据预先设定的视图控制参数,将原始要素的空间数据的原始坐标变换得到视图窗口的视图坐标;在视图窗口上栅格化需要标注避让的要素;根据视图坐标分析原始要素的标注,确定与标注对应的符合预设显示条件的面标注区域为标注的标注显示区域。本发明实施例公开的空间实体要素标注的冲突检测与避让方法中,按照预设视图控制参数将原始空间数据的原始坐标变换得到视图窗口下的视图坐标,各个视图坐标的空间关系在该视图窗口下能够进行直观体现,在该窗口下对其进行分析,简化了分析过程,避免了将能够显示的标注舍弃而造成的显示有效性低的问题。
文档编号G06F9/44GK102053837SQ20101061738
公开日2011年5月11日 申请日期2010年12月31日 优先权日2010年1月7日
发明者董福田 申请人:董福田