CN107220372B - 一种三维地图线要素注记自动放置方法 - Google Patents
一种三维地图线要素注记自动放置方法 Download PDFInfo
- Publication number
- CN107220372B CN107220372B CN201710454536.4A CN201710454536A CN107220372B CN 107220372 B CN107220372 B CN 107220372B CN 201710454536 A CN201710454536 A CN 201710454536A CN 107220372 B CN107220372 B CN 107220372B
- Authority
- CN
- China
- Prior art keywords
- annotation
- reference line
- node
- line
- vertex
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B29/00—Maps; Plans; Charts; Diagrams, e.g. route diagram
- G09B29/003—Maps
- G09B29/006—Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
- G09B29/007—Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Ecology (AREA)
- Mathematical Physics (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种三维地图线要素注记自动放置方法,可用于三维地理场景中文字注记的自动放置和调整,包括如下阶段:(1)预处理阶段,将注记参考线贴合到地表,建立注记参考线层次树结构;(2)并行遍历筛选阶段,动态构造视点相关的参考线,并执行基于阴影图的遮挡裁剪及参考线的单调性分割;(3)屏幕空间注记冲突处理阶段,将参考线投影到屏幕空间,处理注记间的相互冲突关系,生成可渲染的注记对象。通过动态构造视点相关的注记参考线,该注记方法能够适应不同视距以及观察角度的变化,并反映出线要素的走向;此外,基于阴影图的遮挡裁剪避免了地物对注记的遮挡,而在屏幕空间使用无回溯的图着色算法则解决了注记之间的冲突问题。
Description
技术领域
本发明属于计算机图形学和地图制图学领域,具体涉及一种三维地图线要素注记自动放置方法。
背景技术
目前对地图注记放置的研究有如下几个方面:
(1)二维地图注记
Christensen et al.总结了静态地图点状要素注记放置的近似算法。DoNascimento et al.提出了一个支持人工交互与自动化方法相结合的地图注记自动放置框架,能充分利用专家领域知识,改善地图注记的质量并提高了注记的处理效率。Rylov etal.在图像空间中,根据地图的背景的同质性,评估地图注记放置的质量。Wu et al.提出了一个基于网格的注记放置方法,能够有效处理点要素注记以及面要素注记。
Petzold et al.针对屏幕地图提出快速注记计算方法,引入预处理步骤,建立注记之间潜在的冲突关系图,加速实时运行阶段注记冲突关系的处理。Gemsa et al.提出了用于交通导航的屏幕地图注记放置策略,在限定地图注记数量的前提下,给出了具有多项式时间复杂度的注记放置算法。根据注记参考点位是否固定,屏幕地图的注记问题又可以分为定点注记模型和滑动注记模型。定点注记模型中注记只能放置在有限的几个点位上,而滑动注记模型则允许注记沿着注记参考点“滑动”,以避免注记被其他对象遮挡。Been etal.针对定点注记,提出了在用户缩放操作下,保持注记显示一致性的快速屏幕注记筛选算法,可使地图注记在用户缩放和平移过程中不会产生闪烁和跳动现象,该算法为每个定点注记计算出一个连续的比例尺区间,当地图缩放过程中的比例尺落在区间内,就显示该注记。Gemsa et al.进一步针对定点注记提出了在用户旋转操作下保持注记显示一致性的屏幕注记放置算法,避免了地图旋转时注记的闪烁与跳动,该算法为每个注记计算一个连续的角度区间,当地图的旋转角度落在区间范围内,就显示该注记。Vaaraniemi et al.针对滑动注记,提出了一种基于受力模拟的注记放置算法,假定注记间存在斥力,注记与其参考点(参考线)之间存在的引力,在用户交互过程中实时模拟注记的受力运动,并隐藏移动速度过快的注记,实现了一个随用户交互以及时间改变连续变化的注记模型。
(2)嵌入式三维地图注记
现代三维屏幕地图则可以使用透视模式——允许改变相机的观察角度,地图注记在地图中被朝上放置在平坦的表面上,和其它地图场景对象一起在透视投影下被渲染到屏幕上。在地图渲染的过程中,需要将包含有地图注记的纹理映射到地面上。地图注记纹理既可以由制图人员在预处理阶段使用静态二维地图注记放置算法方法为不同比例尺地图预先生成,也可以在实时交互过程中依据特定的规则,动态地合成,这类方法可称作嵌入式三维地图注记。在不考虑地物遮挡的前提下,对二维屏幕地图的注记放置方法稍作修改就能大致满足交互式三维地图注记放置的要求。Maass et al.针对地物遮挡问题,提出了一种嵌入式的三维线要素注记放置算法,他在线要素注记参考线上设置若干采样点,利用可编程渲染管线对这些采样点执行可见性判断,尽量避免注记被遮挡。这类方法的主要缺陷在于地图注记总是正面朝上与地表相贴合,因此当观察者视线与地面接近于平行的时候,注记的可读性急剧下降,变得几乎不可分辨。Schwartges为三维导航地图给出了一种混合式的注记模型,他对当前激活的路径(正在导航的路径)使用基于布告板的注记,而将嵌入式三维注记形式应用于处于非激活状态的其他地图要素。
(3)基于布告板的三维地图注记
基于布告板的地图注记算法将每个注记当做一个轴对齐矩形(Axis-AlignedBounding Box,AABB),注记文字的纹理被映射到这个矩形上,随着地图观察者视角的变化,动态地计算AABB的变换矩阵,确保注记能始终以一个合适的角度朝向观察者。对每一个注记参考点执行遮挡测试(类似于DEM上的视域分析),以移除被遮挡的注记。随后将注记投影到屏幕空间,借鉴二维地图中注记处理的方法,在屏幕空间上解决注记之间的冲突。为了突出强调注记与相应要素之间的联系,有时会在注记布告板与注记参考点之间绘制一条连接线。Maass et al.使用一个平行于屏幕的平面作为注记布告板的容器,并且由远及近,将靠近观察者的注记绘制在容器的底部,远离观察者的注记绘制在容器的顶部。Schwartges etal.针对三维导航地图的道路注记提出了一种基于布告板的注记算法,通过实时模拟屏幕空间注记受力下的位移情况,实现了注记的平滑移动。总体上来说,基于布告板的三维地图注记能够满足点要素的注记需求。然而对于三维地图中的线要素与面要素,使用这种注记形式需要预先计算出一个或多个参考点作为注记布告板放置的锚点,这种做法会削弱注记与要素之间的关联。对于非点状要素而言,定点注记的形式无法适应不同视角下的观测需要,因为随着观察角度的变化,预先计算的注记参考点可能会被遮挡,而对应的要素只是部分被地形或建筑物遮挡,还有部分在屏幕上可见。
总体上来说,目前三维地图的注记研究尚不完善,大部分研究倾向于将问题简化,使用简化后的模型处理地图中要素的注记,而忽略或者弱化了三维地图中地物对注记或者注记参考点(线)的遮挡问题。此外嵌入式的三维注记在极端视角下难以保证注记易于辨识,而基于布告板的注记会损害注记与对象之间的关联性。
发明内容
发明目的:针对现有三维地图注记放置方法的缺陷,本发明公开了一种三维地图线要素注记自动放置方法,可以满足三维线要素对其注记参考线的差异性层次细节表达需求,提高沿线放置注记的实时计算效率,解决地物对注记的遮挡问题,增强注记的可读性。
技术方案:本发明公开了一种三维地图线要素注记自动放置方法,可用于三维地图中的线性要素文字注记的位置、朝向、尺寸等参数的实时计算,包括如下步骤:
(1)将线要素贴合到地形表面形成原始的注记参考线,并建立静态的注记参考线层次树结构T;T中的每个结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e),其中vs为起始顶点,ve为终止顶点,bss,e为顶点vs,vs+1,…,ve-1,ve的包围球,errs,e为线{vs,ve}和线{vs,vs+1,…,ve-1,ve}之间的差异,Ns,i、Ni,e为Ns,e的左右孩子结点;
(2)在运行时阶段,遍历静态的注记参考线层次树结构动态构造视点相关的注记参考线,并进行视锥体裁剪、遮挡裁剪和单调性分割;在遍历注记参考线层次树结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e)的时候,若不满足条件:则选中结点Ns,e,不递归访问子结点Ns,i和Ni,e,将Ns,e加入结点数组D,否则递归访问其子结点,最后连接结点数组D包含的结点序列所代表的线段,就得到视点相关的注记参考线;其中di为观察点与顶点vi之间的距离,Psz为预先定义的注记字体的像素大小,k为调节注记参考线总体细节度的一个预定义常量,vfst为当前相机参数下的视锥体;
(3)将注记参考线投影至屏幕空间,处理注记之间的相互冲突关系,生成可渲染的注记对象。
进一步地,步骤(1)中的建立注记参考线层次树结构T的步骤包括:
(1.1)初始化一个存储待处理的结点的序列S={N1,2,N2,3,…,Nn-1,n},其中n表示贴合到地形上的注记参考线的顶点的数目;
(1.2)每次从序列S中选取两个相邻的结点Na,b,Nb,c,使得误差erra,c达到最小;
(1.3)从序列S里移除这两个结点,并插入新的合并结点Na,c=(va,vc,bsa,c,erra,c,Na,b,Nb,c);
(1.4)重复步骤(1.2)和(1.3),直到S={N1,n},{N1,n}就是注记参考线层次树T的根结点。
进一步地,步骤(1)中,结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e)中的误差errs,e计算公式为:
errs,e=max(area(vs,vi,ve),errs,i,erri,e)
包围球bss,e计算公式为:
bss,e=merge(bss,i,bsi,e)
其中,area(vs,vi,ve)表示代表以vs,vi,ve为顶点的三角形面积,bss,e为合并包围球bss,i与bsi,e后得到的新包围球。
进一步地,步骤(2)中在遍历注记参考线层次树结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e)的时候,若需要遍历其子结点时,若满足(vi-vs)·(ve-vi)<0,则记录分割顶点vi;在进行单调性分割时,使用生成的分割顶点以及线方向的单调性测试将视点相关的注记参考线分割为多段。
进一步地,步骤(2)使用阴影图算法,判断并裁剪注记参考线被地物遮挡的部分。
进一步地,步骤(3)中采用贪心图着色算法处理注记之间的冲突,决定注记的处理顺序。
有益效果:本发明方法针对三维线要素的几何形态特征,沿动态构造的视点相关注记参考线放置注记文字,极大地降低了注记参考线的实时计算量,并有效解决了三维透视视角对注记参考线细节层次的差异化需求,能够适应不同视距以及观察角度的变化,并反映出线要素的走向。此外,采用阴影图算法为注记参考线执行进取式的遮挡裁剪,避免了注记被放置在线要素被地形遮挡的部分,并在屏幕空间使用无回溯的图着色算法解决了注记之间的冲突问题,提高了沿线分布的文字注记可读性。
附图说明
图1为三维地图线要素注记放置流程图。
图2为注记视点相关参考线动态构造示意图:(a)注记参考线层次树结构;(b)动态地生成视点相关的注记参考线示意图。
图3为基于阴影图遮挡裁剪示意图:(a)阴影图相机位置示意图;(b)地形阴影对注记的遮挡。
图4为注记参考线分割示意图:(a)(b)使用分割顶点序列分割注记参考线;(c)单调性分割示意图。
图5为屏幕空间的注记冲突处理示意图:(a)注记参考线投影到屏幕空间;(b)不同参考线在屏幕空间示意图;(c)注记在屏幕空间潜在冲突关系图。
图6为采用本发明方法渲染的三维地图线要素注记效果图:(a)方法效果组图a;(b)方法效果组图b;(c)过度曲折的注记参考线分割为多段分别注记。
具体实施方式
下面结合附图和具体实施方式进一步阐释本发明。
本发明实施例公开的一种三维地图线要素注记自动放置方法的处理流程分为三个阶段(图1),在预处理阶段生成一个注记参考线的层次树结构以加速下一阶段视点相关的注记参考线的实时生成;在并行注记遍历筛选阶段,采用管线化的策略,并行地处理每一个注记,最后将注记参考线投影到屏幕空间输入到下一阶段;最后一阶段,在屏幕空间上处理注记之间的冲突。
步骤(1)预处理阶段,将注记参考线贴合到地表,并建立注记参考线层次树结构。包括:
(1.1)将线要素贴合到地形表面,生成原始的注记参考线。
为了使注记能够反映出地形高程的变化,需要在注记参考线上插入大量的顶点使其与地面相贴合,这会增加注记放置的计算量,进而影响地图程序的实时交互特性。因此在预处理阶段构造注记参考线层次树结构,并在实时运行阶段动态地生成视点相关的注记参考线(图2),有效地降低了注记参考线的几何复杂度,并确保了注记参考线保留了当前视点下必要的几何信息。
令R={v1,v2,...,vn}代表贴合到地形上的注记参考线,它包含一个对线要素内插高程点,贴合到地形之后生成的顶点序列v1,v2,...,vn。令T代表预处理阶段生成的注记参考线层次树,它以二叉树的形式存储。T中的每个结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e)包含:起始顶点vs,终止顶点ve,顶点vs,vs+1,...,ve-1,ve的包围球bss,e,线{vs,ve}和线{vs,vs+1,...,ve-1,ve}之间的差异errs,e,以及可选的两个左右孩子结点Ns,i&Ni,e。
(1.2)对原始的注记参考线执行三维线要素简化操作,形成注记参考线乘次树结构。
本步骤中,采用自底向上的方式构建树T:
1)初始化一个存储待处理的结点的序列S={N1,2,N2,3,…,Nn-1,n};
2)每次从中选取两个相邻的结点Na,b,Nb,c,使得误差erra,c达到最小;
3)从S里移除这两个结点,并插入新的合并结点Na,c=(va,vc,bsa,c,erra,c,
Na,b,Nb,c);
4)重复上述2~3步,直到S={N1,n};
5)N1,n就是注记参考线层次树T的根结点。
结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e)中的误差errs,e可以使用以下公式计算:
errs,e=max(area(vs,vi,ve),errs,i,erri,e)
包围球bss,e可以使用以下公式快速计算:
bss,e=merge(bss,i,bsi,e)
其中area(vs,vi,ve)代表以vs,vi,ve为顶点的三角形面积,merge(bss,i,bsi,e)表示合并包围球bss,i与bsi,e后得到的新的包围球,如果e=s+1,则errs,e=0,bss,e为以vs和ve为直径两端点的球体。
为了加快上述注记参考线层次树的构建,可以使用一个最小堆存储S中所有相邻结点的误差errs,e,每当两个相邻结点被合并了,就将最小堆里最小的误差项移除,并更新最小堆中所有受到影响的误差项,调整堆的结构。
值得注意的是,当把文字注记放置在较远的注记参考线上时,为了确保注记显示在屏幕上的时候能够有合理的像素尺寸,需要加大注记在对象空间的尺寸。在放置这类对象空间尺寸较大的文字注记时,需要移除注记参考线上那些包含高细节层次信息的顶点,否则可能会影响注记的可读性,见步骤(2.1)。
步骤(2)实时运行阶段,遍历筛选注记参考线,包括如下步骤:
(2.1)使用深度优先策略遍历注记参考线层次树,选取层次树中的相应结点,构造视点相关的注记参考线。
在本步骤中用深度优先策略遍历注记参考线层次树T。遍历过程中,使用一个结点数组D={}记录选中的层次树结点,并将分割顶点记录在一个顶点数组B={}中。在访问层次树结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e)的时候,根据公式:
决定是否递归访问子结点Ns,i&Ni,e,即若Ns,e所代表的注记参考线段的误差在当前视距下影响较大,且该线段与视锥体相交,则递归访问其子结点,否则选中Ns,e。式中di为观察点与顶点vi之间的距离,Psz为预先定义的注记字体的像素大小,k为调节注记参考线总体细节度的一个预定义常量,vfst为当前相机参数下的视锥体。如果上面公式成立需要遍历子结点,否则就选中Ns,e并将其压入D的尾端。如果需要遍历子结点,并且顶点坐标公式:
(vi-vs)·(ve-vi)<0
成立,就将顶点vi压入B的尾端,vi包含了顶点i的三维坐标信息,(vi-vs)·(ve-vi)表示两个向量点乘,结果大于0则表示两个向量方向一致(夹角大于90度),小于0则表示两个向量方向不一致(夹角小于90度)。最后顶点数组D将会包含一个结点序列{N1,a,Na,b,Nb,c,...,Nk,n},连接序列中的每个结点所代表的线段,就能得到视点相关的注记参考线{v1,va,vb,vc,...,vk,vn}。分割顶点序列B将包含一系列的顶点,并用于步骤(2.4)注记参考线的多层次细节分割。
(2.2)对视点相关的注记参考线实施视锥体裁剪,移除视锥体外部的线段。
(2.3)对视点相关的注记参考线实施遮挡裁剪,移除被地物遮挡的线段。
将地图用户的观察点视作光源所在位置,在用户观察点的正上方设置一个向下观察的正射投影相机渲染阴影图,利用可编程渲染管线将处于“阴影”的区域标记为白色,“阴影”以外的区域标记为黑色。最后处于“阴影”的区域对应于被地形所遮挡的部分(图3)。
首先计算地图中全体线要素的包围盒,取视锥体与该包围盒的交集作为深度图的渲染范围,并将地形背面渲染到深度纹理。然后从上方的正射投影相机利用深度纹理执行深度对比,实时渲染出该区域地面的阴影图。由于使用了相对进取的裁剪策略,因而较低分辨率的阴影图就足以完成遮挡裁剪任务,这样就能够降低整体的计算量。随后以阴影图像素大小为步长,沿着注记参考线,查找在阴影图里被遮挡的线段,将这些线段从注记参考线里移除,并把注记参考线分割为多段。
(2.4)对注记参考线实施单调性分割以及多层次细节分割。
分割注记参考线的目的在于确保即使线要素过度曲折或者线要素方向与屏幕接近于垂直,注记也能够具有良好的可读性。通过提取注记参考线的拐点,并在该点分割注记参考线,可以使注记避过注记参考线上过度曲折的部分。此外,通过定义一个长度阈值,遍历注记参考线,当已遍历的长度超过该阈值,就在该点分割注记参考线,可以实现对过长线要素的重复注记。
合理地分割动态的注记参考线,需要考虑一些特殊的情况。例如,注记参考线在拐点处可能会表现的比较“平滑”,很难利用相邻线段的夹角判断注记参考线的方向是否发生了剧烈的变化。因此可以使用在构造视点相关注记参考线时生成的分割点序列B,在多细节层次上分割注记参考线(图4)。
以连接注记参考线首尾顶点的矢量方向作为主方向,遍历注记参考线的每一个顶点,并执行以下判断:
1)当前顶点是否属于分割顶点序列B;
2)注记参考线相对于主方向的单调性是否发生了变化;
3)注记参考线的方向是否与视线方向近似平行,即二者单位方向向量点积的绝对值是否接近于1;
4)注记参考线已遍历线段的累计长度是否超过了某个阈值。
以上有任意一条成立,就在当前顶点上分割注记参考线。如果分割过后的注记参考线的长度无法容纳文字注记中的所有字符,就选取注记参考线在视锥体部分的中心点,将线要素注记退化为基于布告板的点要素注记来处理。
步骤(3)将注记参考线投影至屏幕空间,处理注记之间的相互冲突关系,生成可渲染的注记对象。其中注记间的冲突处理,包括如下步骤:
(3.1)对注记在屏幕上的候选区(注记参考线投影到屏幕空间后的缓冲区)建立R-Tree空间索引;
(3.2)建立注记在屏幕空间的潜在冲突关系图,图中的顶点代表一个注记候选区,图中连接两个顶点的边,代表两个注记候选区之间潜在的冲突关系;
(3.3)使用贪心的图着色算法计算注记的处理顺序;
(3.4)依次处理屏幕上的注记,确保后处理的注记不会被先处理的注记遮挡,生成可渲染的注记对象。
步骤(3)中采用一个无回溯的注记放置方法,处理过程中,文字注记被依次放置,如果一个注记无法在屏幕空间寻找到合适的区域放置,就跳过该注记,处理下一个注记。步骤(3.3)基于步骤(3.2)构建的屏幕注记冲突图,使用贪心图着色算法决定注记的处理顺序(图5):
1)从冲突图中取出一个具有最小dg×p的结点,其中dg代表结点在冲突图里边的数量,p表示结点的优先级;
2)将此结点从图中移除,并压入栈顶,更新图中剩余结点的度。上述步骤可以使用一个存储了结点度数以及优先级的最小堆来实现;
3)重复1~2,直到图中没有任何剩余的结点;
4)从栈顶弹出结点,如果此结点对应的注记在屏幕上的候选区域没有被其它注记占据,就将该注记放置到屏幕空间对应的位置,否则就认为该注记放置失败;
5)重复4,直到栈中没有任何剩余的结点;
6)为所有被成功放置的文字注记生成可渲染的对象,并将其放进三维地图场景渲染树中。
图6为采用本发明实施方法渲染的三维地图线要素注记效果图,图中文字注记沿线分布,注记的方向与线的走向呈现出一致性。当线要素和被地形部分遮挡时,相应的注记会在注记参考线上自动避开被遮挡的线段。随着观察点的平滑改变,注记的朝向也随之调整,以保持交互一致性。当视口内的注记参考线与屏幕接近于垂直的时候,相应的线要素注记被退化为基于布告板的点要素注记来处理(图6(b))。此外,注记参考线在过度曲折的情况下会被分割为多段,被分别处理(图6(c))。
Claims (7)
1.一种三维地图线要素注记自动放置方法,其特征在于包含以下步骤:
(1)将线要素贴合到地形表面形成原始的注记参考线,并建立静态的注记参考线层次树结构T;T中的每个结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e),其中vs为起始顶点,ve为终止顶点,bss,e为顶点vs,vs+1,…,ve-1,ve的包围球,errs,e为线{vs,ve}和线{vs,vs+1,…,ve-1,ve}之间的差异,Ns,i、Ni,e为Ns,e的左右孩子结点;
(2)在运行时阶段,遍历静态的注记参考线层次树结构动态构造视点相关的注记参考线,并进行视锥体裁剪、遮挡裁剪和单调性分割;在遍历注记参考线层次树结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e)的时候,若不满足条件:则选中结点Ns,e,不递归访问子结点Ns,i和Ni,e,将Ns,e加入结点数组D,否则递归访问其子结点,最后连接结点数组D包含的结点序列所代表的线段,就得到视点相关的注记参考线;其中di为观察点与顶点vi之间的距离,Psz为预先定义的注记字体的像素大小,k为调节注记参考线总体细节度的一个预定义常量,vfst为当前相机参数下的视锥体;
(3)将注记参考线投影至屏幕空间,处理注记之间的相互冲突关系,生成可渲染的注记对象。
2.根据权利要求1所述的三维地图线要素注记自动放置方法,其特征在于,步骤(1)中的建立注记参考线层次树结构T的步骤包括:
(1.1)初始化一个存储待处理的结点的序列S={N1,2,N2,3,…,Nn-1,n},其中n表示贴合到地形上的注记参考线的顶点的数目;
(1.2)每次从序列S中选取两个相邻的结点Na,b,Nb,c,使得误差erra,c达到最小;
(1.3)从序列S里移除这两个结点,并插入新的合并结点Na,c=(va,vc,bsa,c,erra,c,Na,b,Nb,c);
(1.4)重复步骤(1.2)和(1.3),直到S={N1,n},{N1,n}就是注记参考线层次树T的根结点。
3.根据权利要求1所述的三维地图线要素注记自动放置方法,其特征在于,结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e)中的误差errs,e计算公式为:
errs,e=max(area(vs,vi,ve),errs,i,erri,e)
包围球bss,e计算公式为:
bss,e=merge(bss,i,bsi,e)
其中,area(vs,vi,ve)表示代表以vs,vi,ve为顶点的三角形面积,bss,e为合并包围球bss,i与bsi,e后得到的新包围球。
4.根据权利要求1所述的三维地图线要素注记自动放置方法,其特征在于,步骤(2)中在遍历注记参考线层次树结点Ns,e=(vs,ve,bss,e,errs,e,Ns,i,Ni,e)的时候,若需要遍历其子结点时,若满足(vi-vs)·(ve-vi)<0,则记录分割顶点vi;在进行单调性分割时,使用生成的分割顶点以及线方向的单调性测试将视点相关的注记参考线分割为多段。
5.根据权利要求1所述的三维地图线要素注记自动放置方法,其特征在于,步骤(2)使用阴影图算法,判断并裁剪注记参考线被地物遮挡的部分。
6.根据权利要求4所述的三维地图线要素注记自动放置方法,其特征在于,步骤(2)中包括以连接注记参考线首尾顶点的矢量方向作为主方向,遍历注记参考线的每一个顶点,并执行以下判断:
当前顶点是否是记录的分割顶点;
注记参考线相对于主方向的单调性是否发生了变化;
注记参考线的方向是否与视线方向近似平行;
注记参考线已遍历线段的累计长度是否超过了某个阈值;
以上有任意一条成立,就在当前顶点上分割注记参考线。
7.根据权利要求1所述的三维地图线要素注记自动放置方法,其特征在于步骤(3)中采用贪心图着色算法处理注记之间的冲突,决定注记的处理顺序,包含以下步骤:
(3.1)从屏幕注记冲突图中取出一个具有最小dg×p的结点,其中dg代表结点在冲突图里边的数量,p表示结点的优先级;
(3.2)将此结点从图中移除,并压入栈顶,更新图中剩余结点的度;
(3.3)重复步骤(3.1)~(3.2),直到图中没有任何剩余的结点;
(3.4)从栈顶弹出结点,如果此结点对应的注记在屏幕上的候选区域没有被其它注记占据,就将该注记放置到屏幕空间对应的位置,否则就认为该注记放置失败;
(3.5)重复步骤(3.4),直到栈中没有任何剩余的结点;
(3.6)为所有被成功放置的文字注记生成可渲染的对象,并将其放进三维地图场景渲染树中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710454536.4A CN107220372B (zh) | 2017-06-15 | 2017-06-15 | 一种三维地图线要素注记自动放置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710454536.4A CN107220372B (zh) | 2017-06-15 | 2017-06-15 | 一种三维地图线要素注记自动放置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107220372A CN107220372A (zh) | 2017-09-29 |
CN107220372B true CN107220372B (zh) | 2019-09-10 |
Family
ID=59950153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710454536.4A Active CN107220372B (zh) | 2017-06-15 | 2017-06-15 | 一种三维地图线要素注记自动放置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107220372B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446287A (zh) * | 2018-10-12 | 2019-03-08 | 成都北科维拓科技有限公司 | 一种地图加载、渲染方法及系统 |
CN109598792B (zh) * | 2018-11-19 | 2020-09-08 | 南京大学 | 三维场景中建筑物注记的自动放置方法 |
CN110059151B (zh) * | 2019-04-26 | 2022-10-25 | 北京百度网讯科技有限公司 | 地图渲染方法、地图渲染装置、地图服务器和存储介质 |
CN110688443B (zh) * | 2019-10-15 | 2022-03-01 | 中国地质大学(北京) | 一种基于地图注记模型的注记方法 |
CN110784733B (zh) * | 2019-11-07 | 2021-06-25 | 广州虎牙科技有限公司 | 直播数据处理方法、装置、电子设备及可读存储介质 |
CN111552755B (zh) * | 2020-04-26 | 2020-11-24 | 中科三清科技有限公司 | 三维地名标注的绘制方法、装置、设备及存储介质 |
CN117830587B (zh) * | 2024-03-05 | 2024-05-28 | 腾讯科技(深圳)有限公司 | 地图标注的绘制方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154295A (zh) * | 2006-09-28 | 2008-04-02 | 长江航道规划设计研究院 | 航道三维仿真电子图 |
CN102855810A (zh) * | 2012-09-04 | 2013-01-02 | 绍兴文理学院 | 一种基于利用卫星影像图进行数字线划地图的方法 |
CN105844703A (zh) * | 2016-03-21 | 2016-08-10 | 国网安徽省电力公司宿州供电公司 | 一种基于高精度dem数据的三维地形简化算法 |
CN106599248A (zh) * | 2016-12-20 | 2017-04-26 | 黄河勘测规划设计有限公司 | 基于二元要素类映射池技术的空间图形转换方法 |
-
2017
- 2017-06-15 CN CN201710454536.4A patent/CN107220372B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101154295A (zh) * | 2006-09-28 | 2008-04-02 | 长江航道规划设计研究院 | 航道三维仿真电子图 |
CN102855810A (zh) * | 2012-09-04 | 2013-01-02 | 绍兴文理学院 | 一种基于利用卫星影像图进行数字线划地图的方法 |
CN105844703A (zh) * | 2016-03-21 | 2016-08-10 | 国网安徽省电力公司宿州供电公司 | 一种基于高精度dem数据的三维地形简化算法 |
CN106599248A (zh) * | 2016-12-20 | 2017-04-26 | 黄河勘测规划设计有限公司 | 基于二元要素类映射池技术的空间图形转换方法 |
Non-Patent Citations (2)
Title |
---|
地图线状要素注记自动配置的算法与实现;殷勇等;《中国工程科学》;20131231;第15卷(第5期);第30-36页 |
地图线状要素自动注记的算法设计与实现;樊红等;《测绘学报》;19990228;第28卷(第1期);第86-89页 |
Also Published As
Publication number | Publication date |
---|---|
CN107220372A (zh) | 2017-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220372B (zh) | 一种三维地图线要素注记自动放置方法 | |
CN108520557B (zh) | 一种图形图像融合的海量建筑绘制方法 | |
CN105336003B (zh) | 结合gpu技术实时流畅绘制出三维地形模型的方法 | |
CN110738721B (zh) | 基于视频几何分析的三维场景渲染加速方法及系统 | |
US6985143B2 (en) | System and method related to data structures in the context of a computer graphics system | |
EP2282245B9 (en) | Cutting process simulation display device, method for displaying cutting process simulation, and cutting process simulation display program | |
US20100289799A1 (en) | Method, system, and computer program product for efficient ray tracing of micropolygon geometry | |
KR20090114860A (ko) | 3d 네비게이션을 위한 영상표현 방법, 장치 및 그 장치를포함한 모바일 장치 | |
KR20100136604A (ko) | 3차원 지형 영상 실시간 가시화 시스템 및 이의 방법 | |
CN111047682B (zh) | 一种三维车道模型生成方法及系统 | |
CN102663800A (zh) | 一种顾及城市意象的城市建筑综合与渲染的方法 | |
CN110852952B (zh) | 一种基于gpu的大规模地形实时绘制方法 | |
CN107170040A (zh) | 一种三维桥梁场景构建方法和装置 | |
CN113750516A (zh) | 一种在游戏引擎中实现三维gis数据加载方法、系统及设备 | |
CN102663802B (zh) | 一种游戏地形道路生成方法和装置 | |
CN113806654A (zh) | 一种基于地理信息的虚拟空间系统 | |
CN105023288A (zh) | 二维矢量实线在三维场景中的视觉误差消除方法 | |
Li | Real-world large-scale terrain model reconstruction and real-time rendering | |
She et al. | A line-feature label placement algorithm for interactive 3D map | |
Van Kooten et al. | Point-based visualization of metaballs on a gpu | |
CN116958457A (zh) | 一种基于OSGEarth的战争迷雾效果绘制方法 | |
Chang et al. | Hierarchical simplification of city models to maintain urban legibility. | |
Oliveira et al. | Incremental texture mapping for autonomous driving | |
CN118225104B (zh) | 一种山区场景下的三维导航优化方法、设备及介质 | |
JP2548742B2 (ja) | 3次元シーン表示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 210008 Nanjing, Gulou District, Jiangsu, No. 22 Hankou Road Applicant after: Nanjing University Address before: No. 163 Qixia Xianlin Avenue District of Nanjing City, Jiangsu province 210023 Applicant before: Nanjing University |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |