1.本技术实施例涉及地图渲染技术领域,尤其涉及一种地图渲染方法、电子设备及计算机存储介质。
背景技术:2.随着终端渲染技术的发展,具有地图导航功能的应用(包括但不限于导航应用、网约车应用等)基本均支持以三维视角渲染电子地图,以增强用户浏览电子地图时的真实感。
3.本技术发明人在对以三维视角渲染的电子地图进行研究时发现,电子地图的视野中心处的路面等地理要素存在被建筑物遮挡的现象,而视野中心处渲染的地理要素是用户浏览电子地图时重点关注的区域。
4.因此,如何使以三维视角渲染的电子地图能够清晰呈现视野中心处的地理要素,成为亟待解决的问题。
技术实现要素:5.有鉴于此,本技术实施例提供一种地图渲染方案,以至少部分解决上述问题。
6.根据本技术实施例的第一方面,提供了一种地图渲染方法,包括:确定待渲染的三维电子地图的视野中心及与所述视野中心对应的视锥体;基于所述视锥体构建四棱锥体,其中,所述四棱锥体的顶点与所述视锥体的顶点相同,所述四棱锥体的底面为平行于所述视锥体的远裁剪面的矩形,所述矩形的中心为所述视野中心;确定所述三维电子地图包含的地理要素中与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素;渲染所述待渲染的三维电子地图时,使所述待隐藏地理要素不可见。
7.根据本技术实施例的第二方面,提供了一种地图渲染装置,包括:确定模块,用于确定待渲染的三维电子地图的视野中心及与所述视野中心对应的视锥体;构建模块,用于基于所述视锥体构建四棱锥体,其中,所述四棱锥体的顶点与所述视锥体的顶点相同,所述四棱锥体的底面为平行于所述视锥体的远裁剪面的矩形,所述矩形的中心为所述视野中心;隐藏模块,用于确定所述三维电子地图包含的地理要素中与所述四棱锥体产生碰撞的建筑物渲染所述待渲染的三维电子地图时,使所述待隐藏地理要素不可见;渲染所述待渲染的三维电子地图时,使所述待隐藏地理要素不可见。
8.根据本技术实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的地图渲染方法对应的操作。
9.根据本技术实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的地图渲染方法。
10.根据本技术实施例的第五方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如第一方面所述的地图渲染方法对应的操作。
11.根据本技术实施例提供的地图渲染方案,在需要以三维方式呈现视野中心所在区域的信息时,通过基于视野中心对应的视锥体构建的四棱锥体,确定与四棱锥体产生碰撞的建筑物,也即影响当前视野的建筑物,以在呈现视野中心的三维图像时,将这些建筑物隐藏不可见。因四棱锥体基于视锥体构建,可看作是视锥体的延展,而视锥体是反映当前视野的有效表征,因此,与四棱锥体产生碰撞的建筑物就可被认为是影响当前视野的建筑物,通过在呈现三维图像时隐藏不可见这些建筑物,可有效保证视野中心信息的清晰呈现,提升三维地图呈现效果和用户体验。
附图说明
12.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
13.图1a为根据本技术实施例一的一种地图渲染方法的步骤流程图;
14.图1b为一种视锥体的示意图;
15.图1c为一种视野中心对应的视锥体的示意图;
16.图1d为相关技术中的一种视野中心显示界面的示意图;
17.图1e为采用图1a所示方法处理后的视野中心显示界面的示意图;
18.图2a为根据本技术实施例二的一种地图渲染方法的步骤流程图;
19.图2b为图2a所示实施例中的一种示例场景示意图;
20.图3为根据本技术实施例三的一种地图渲染装置的结构框图;
21.图4为根据本技术实施例四的一种电子设备的结构示意图。
具体实施方式
22.为了使本领域的人员更好地理解本技术实施例中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本技术实施例保护的范围。
23.下面结合本技术实施例附图进一步说明本技术实施例具体实现。
24.实施例一
25.参照图1a,示出了根据本技术实施例一的一种地图渲染方法的步骤流程图。
26.本实施例的地图渲染方法包括以下步骤:
27.步骤s102:确定待渲染的三维电子地图的视野中心及与所述视野中心对应的视锥体。
28.在三维地图中,视野中心通常是指图像采集设备(如摄像机)的视线和地面的交点处,如图1d和图1e中所示的虚线椭圆处。
29.而视锥体通常可指渲染引擎中,透视摄像机可以渲染的区域的形状,其形如一个顶部被平行于底部的平面切削后的四棱锥,摄像机就位于四棱锥的顶点。视锥体具有近裁剪面和远裁剪面,其中,近裁剪面是指视锥体的靠近摄像机的平面,平行于远裁剪面;远裁
剪面是指视锥体的远离摄像机的平面,平行于近裁剪面。一种示意性的视锥体如图1b中实线部分所示。
30.相应地,视野中心对应的视锥体则为透视摄像机位于其视线可达视野中心处位置时对应的视锥体,如图1c中短虚线所示。
31.在三维电子地图中,当视野中心确定后,基于摄像机位置和视野中心的连线,即可确定视野中心对应的视锥体。在观看地图场景或导航场景中,可认为摄像机视线方向为由摄像机位置指向三维电子地图中的视野中心的方向。
32.例如,首先确定地图视野中心后,将摄像机放置在视野中心,正前方朝向正北,视线平行于地面;然后确定方位角alpha,默认零度即朝向正北,将相机的方位角调整为alpha;接着确定俯仰角pitch,默认为90度即相机垂直直视地面(此为二维视野),将摄像机俯仰角调整为pitch。最后确定摄像机与视野中心的距离d,此数值影响视野中展示物体的大小,将摄像机沿着当前的朝向退让d的距离到半空中,就确定了摄像机的位置和姿态。
33.其中,方位角是摄像机绕垂直于地面的轴的旋转角,默认0度,对应于朝向正北;俯仰角是摄像机朝向与地面的夹角,默认90度,即垂直直视地面,是二维视野(当此角小于90度时,是三维视野)。
34.步骤s104:基于视锥体构建四棱锥体。
35.其中,四棱锥体的顶点与视锥体的顶点相同,四棱锥体的底面为平行于视锥体的远裁剪面的矩形,所述矩形的中心为视野中心,一种构建的四棱锥体如图1c中实线所示。一般来说,为了使视野中心的信息可被清晰显示,而其周边区域信息也可被有效显示以便于观看者进行了解,构建的四棱锥体的体积需小于摄像机至视锥体远裁剪面构成的锥体的体积,能够使得基于四棱锥体将最影响视野中心的建筑物在显示时隐藏不可见即可。
36.步骤s106:确定三维电子地图包含的地理要素中与四棱锥体产生碰撞的建筑物作为待隐藏地理要素,并在渲染待渲染的三维电子地图时,使待隐藏地理要素不可见。
37.本技术实施例中,与四棱锥体产生碰撞意指四棱锥体在地面的投影与建筑物在地面的投影之间存在部分交集的情况,也即,建筑物在地面的投影的一部分与四棱锥体在地面的投影相交,另一部分不相交的情况。
38.在确定了与四棱锥体产生碰撞的建筑物后,在渲染呈现三维电子地图,尤其是三维电子地图中位于视野中心的三维图像时,即可将这部分建筑物进行不可见处理,包括但不限于剔除这部分建筑物或者将这部分建筑物设置为透明。
39.为便于说明采用本技术实施例方案,将所述建筑物隐藏不可见的效果。首先,参照图1d,由图1d中可见,虚线椭圆形所标示的视野中心被建筑物遮挡,不能清晰呈现视野中心的信息。而采用本技术实施例的方案后,视野中心的呈现效果如图1e所示。由图1e中可见,因相应的建筑物被隐藏不可见,虚线椭圆形所标示的视野中心的信息可被清晰呈现。
40.可见,通过本实施例,在需要以三维方式呈现视野中心所在区域的信息时,通过基于视野中心对应的视锥体构建的四棱锥体,确定与四棱锥体产生碰撞的建筑物,也即影响当前视野的建筑物,以在呈现视野中心的三维图像时,将这些建筑物隐藏不可见。因四棱锥体基于视锥体构建,可看作是视锥体的延展,而视锥体是反映当前视野的有效表征,因此,与四棱锥体产生碰撞的建筑物就可被认为是影响当前视野的建筑物,通过在呈现三维图像时隐藏不可见这些建筑物,可有效保证视野中心信息的清晰呈现,提升三维地图呈现效果
和用户体验。
41.本实施例的地图渲染方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:移动终端(如手机、pad等)、pc机、服务器等。
42.实施例二
43.参照图2a,示出了根据本技术实施例二的一种地图渲染方法的步骤流程图。
44.本实施例的地图渲染方法包括以下步骤:
45.步骤s202:确定待渲染的三维电子地图的视野中心及与视野中心对应的视锥体。
46.在三维电子地图中,当视野中心确定后,基于摄像机位置和视野中心的连线,即可确定视野中心对应的视锥体。在观看地图场景或导航场景中,可认为摄像机视线方向为由摄像机位置指向三维电子地图中的视野中心的方向。
47.步骤s204:基于所述视锥体构建四棱锥体。
48.其中,四棱锥体的顶点与视锥体的顶点相同,四棱锥体的底面为平行于视锥体的远裁剪面的矩形,所述矩形的中心为视野中心。
49.步骤s206:确定三维电子地图中与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素。
50.本步骤在具体实现中,虽然也可采用多面体碰撞算法来检测和四棱锥体产生碰撞的建筑物,但为了进一步提高检测性能,本实施例中,将建筑物的碰撞区域设为其轴坐标对齐包围盒(axis aligned bounding box,简称为aabb),以将上述碰撞检测变成aabb和四棱锥的碰撞检测,也即两个凸多面体的碰撞检测,以简化计算,提高检测速度、效率和性能。在此基础上,在确定三维电子地图中与所述四棱锥体产生碰撞的建筑物时,可以根据四棱锥体与建筑物对应的轴坐标对齐包围盒即aabb的关系,确定与四棱锥体产生碰撞的建筑物,以此作为待隐藏地理要素。
51.在为建筑物设定aabb后,在一种可行方案中,可以通过三维gjk算法来确定建筑物是否和四棱锥体产生了碰撞。三维gjk算法可用于计算三维空间中凸多面体的距离,其先对两个凸多面体求明可夫斯基差,如果两个物体重叠或者相交,它们的明可夫斯基差肯定包括原点。三维gjk算法应用明可夫斯基差是否包含原点的判断原则来判断碰撞与否。其算法具体实现可参照相关技术即可,本技术实施例在此不作详细描述。
52.但三维gjk算法计算复杂,计算数据量大,造成计算效率低下。为此,本实施例中采用了基于四棱锥体的投影和aabb的投影的方式,来确定建筑物与四棱锥体是否产生了碰撞,以简化计算,提高效率。具体地,在根据四棱锥体与建筑物对应的aabb的关系,确定与四棱锥体产生碰撞的建筑物时,可采用以下方式:获得四棱锥体相对于地面的三角形投影,以及建筑物对应的aabb相对于地面的矩形投影;确定与三角形投影存在碰撞关系的矩形投影,并将存在碰撞关系的矩形投影对应的建筑物作为候选建筑物;判断候选建筑物对应的aabb中,是否存在完全位于四棱锥体朝向地面一侧的侧面之下的aabb;将不存在完全位于四棱锥体朝向地面一侧的侧面之下的aabb对应的候选建筑物,确定为与四棱锥体产生碰撞的建筑物。也即,将多面体碰撞问题简化为二维的aabb与三角形的碰撞问题。进而,以确定的建筑物作为待隐藏地理要素。
53.其中,判断候选建筑物对应的aabb中,是否存在完全位于四棱锥体朝向地面一侧的侧面之下的aabb可以包括:根据候选建筑物对应的aabb的顶点坐标,判断候选建筑物对
应的aabb中,是否存在完全位于四棱锥体朝向地面一侧的侧面之下的aabb。因aabb的顶点坐标即可有效表征aabb,因此,采用顶点坐标的方式进行判断,可以大大简化计算,降低计算量。
54.一种采用顶点坐标的方式进行判断的可行方式包括:确定四棱锥体朝向地面一侧的侧面对应的平面向量方程,及所述平面向量方程中分别与x轴坐标、y轴坐标和z轴坐标对应的系数;获得每个候选建筑物对应的aabb的顶点坐标分别在x轴、y轴和z轴上的最大值和最小值;根据所述系数和所述最大值和最小值,获得每个候选建筑物对应的aabb的判定顶点坐标;根据所述判定顶点坐标和所述平面向量方程,判断候选建筑物对应的aabb中,是否存在完全位于四棱锥体朝向地面一侧的侧面之下的aabb。该种方式中,使用平面向量方程表征四棱锥体朝向地面一侧的侧面,从而将碰撞检测简化为具体的方程实现,进一步简化了碰撞检测的实现过程,提升了检测效率。
55.在一种可行方式中,所述根据所述系数和所述最大值和最小值,获得每个候选建筑物对应的aabb的判定顶点坐标,包括:针对每个候选建筑物对应的aabb,和与x轴坐标、y轴坐标和z轴坐标对应的系数中的每个系数,若该系数大于0,则将该aabb上该系数对应的轴向上的所述最大值确定为该轴向上的判定顶点坐标;否则,将该系数对应的轴向上的所述最小值确定为该轴向上的判定顶点坐标;根据确定的每个轴向上的判定顶点坐标,获得该aabb的判定顶点坐标。通过该种方式,可以确定aabb各个轴向上的最大坐标,若最大坐标完全位于四棱锥体朝向地面一侧的侧面之下,则其它坐标也应当完全位于四棱锥体朝向地面一侧的侧面之下。由此,无需针对aabb的每个顶点坐标都进行计算,进一步简化了计算过程,降低了计算数据量,提升了计算效率。
56.具体地,所述根据判定顶点坐标和平面向量方程,判断候选建筑物对应的aabb中,是否存在完全位于四棱锥体朝向地面一侧的侧面之下的aabb包括:针对每个候选建筑物对应的aabb,将该aabb的判定顶点坐标作为所述平面向量方程中的坐标参数,获得方程结果;若所述方程结果大于0,则确定该aabb不完全位于四棱锥体朝向地面一侧的侧面之下(也即,存在碰撞);若所述方程结果小于0,则确定该aabb完全位于所述四棱锥体朝向地面一侧的侧面之下(也即,不存在碰撞)。
57.以下,以一个具体示例对上述碰撞检测过程进行示意性说明。
58.如图2b所示,其中底面的最大矩形代表地面,地面上站立的若干个实线长方体代表建筑物,中间三个具有虚线外框的建筑物表示设定了aabb的建筑物,其中的虚线外框即为aabb,右侧圆柱体代表摄像机,上方的浅灰色虚线锥体结构代表基于视锥体构建的四棱锥体(对称四棱锥,每一个侧面都是等腰三角形),该四棱锥体的顶点是摄像机,底面是一个平行于摄像机的视锥体的远近裁剪面的长方形,该长方形的中心是视野中心(摄像机的视线和地面的交点),下方深灰色的虚线三角形代表四棱锥体在地面的三角形投影。需要注意的是,本实施例中,三角形的底边的中点和四棱锥体底面的中心重叠。
59.在判断建筑物的aabb和四棱锥体是否碰撞时,首先考虑四棱锥体在地面的投影(下方深灰色的虚线三角形,判断建筑物的aabb在地面的投影是否和该三角形发生碰撞,也即,进行二维的aabb与三角形的碰撞检测。如果没有发生碰撞,则该aabb对应的建筑物不需要被隐藏,否则执行下述操作。
60.即:将四棱锥体朝向地面一侧的侧面所在的平面记为p,判断建筑物的aabb是否完
全处于p之下,如果是则该建筑物不需要被隐藏,否则将其隐藏不可见。
61.其中,判断一个aabb是否完全处于平面p的一侧,等价于判断aabb的所有顶点是否处于该平面p的一侧。
62.首先,设平面p的解析式为:function(x,y,z)=ax+by+cz+d=0,即平面p的平面向量方程,其中,x、y、z分别表示对应的x轴、y轴和z轴上的坐标,a、b、c为对应于这三个坐标轴坐标的系数;当向量(a,b,c)归一化向量时,d的绝对值等于平面与坐标原点的距离。若平面经过坐标原点,则d=0。由此,可通过经过坐标原点的平面上的坐标点,获得系数a、b、c的具体数值。进而,可以再基于其它不经过坐标原点的平面上的坐标点获得d的具体数值。可见,在四棱锥体中,能够使得上述ax+by+cz+d=0等式成立的坐标点(x,y,z)即为平面p上的坐标点,所有这样的坐标点构成平面p。
63.而若aabb上的点(x,y,z)处于p之下时,会有:function(x,y,z)《0。
64.基于此,设待检测建筑物的aabb在三个坐标轴即x轴、y轴和z轴上的范围分别是[xmin,xmax],[ymin,ymax],[zmin,zmax]。则,在aabb的8个顶点中,确定判定顶点坐标(u,v,w)。其中:
[0065]
u=xmax if a》0else xmin
[0066]
v=ymax if b》0else ymin
[0067]
w=zmax if c》0else zmin
[0068]
可见,经过上述三个简单的比较运算,就能得到(u,v,w)的值,该(u,v,w)的值为aabb中可令function最大的顶点(u,v,w)的值。
[0069]
最后,只需要判断function(u,v,w)是否大于零,如果大于零,则该aabb对应的建筑物没有完全处于p之下,即与四棱锥体产生了碰撞;如果小于零,则该aabb对应的建筑物完全处于p之下,没有与四棱锥体产生碰撞。
[0070]
此外,需要说明的是,在实际应用中,分离轴算法和二维gjk算法也可实现本技术实施例中的上述二维的aabb与三角形的碰撞检测。
[0071]
还需要说明的是,在实际应用中,还可以根据适当的调整策略调整四棱锥体底面的大小,以调整被避免遮挡的路面的范围大小。其中,所述调整策略可由本领域技术人员根据实际需求适当调整,例如按照一定的比例进行缩放等,本技术实施例对此不作限制。
[0072]
步骤s208:渲染待渲染的三维电子地图时,使待隐藏地理要素不可见。
[0073]
在确定了与四棱锥体发生碰撞的建筑物后,以其作为待隐藏地理要素。在进行三维显示时,只需要将与四棱锥体发生碰撞的建筑物隐藏不可见,就能避免建筑物遮挡住视野中心附近的路面的情况。具体到图2b中,最右侧虚线aabb中的建筑物位于四棱锥体之下,不需要被隐藏,而其它两个虚线aabb中的建筑物与四棱锥体发生了碰撞,需要隐藏不可见。
[0074]
通过本实施例,在需要以三维方式呈现视野中心所在区域的信息时,通过基于视野中心对应的视锥体构建的四棱锥体,确定与四棱锥体产生碰撞的建筑物,也即影响当前视野的建筑物,以在呈现视野中心的三维图像时,将这些建筑物隐藏不可见。因四棱锥体基于视锥体构建,可看作是视锥体的延展,而视锥体是反映当前视野的有效表征,因此,与四棱锥体产生碰撞的建筑物就可被认为是影响当前视野的建筑物,通过在呈现三维图像时隐藏不可见这些建筑物,可有效保证视野中心信息的清晰呈现,提升三维地图呈现效果和用户体验。
[0075]
本实施例的地图渲染方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:移动终端(如手机、pad等)、pc机、服务器等。
[0076]
实施例三
[0077]
参照图3,示出了根据本技术实施例三的一种地图渲染装置的结构框图。
[0078]
本实施例的地图渲染装置包括:确定模块302,用于确定待渲染的三维电子地图的视野中心及与所述视野中心对应的视锥体;构建模块304,用于基于所述视锥体构建四棱锥体,其中,所述四棱锥体的顶点与所述视锥体的顶点相同,所述四棱锥体的底面为平行于所述视锥体的远裁剪面的矩形,所述矩形的中心为所述视野中心;隐藏模块306,用于确定所述三维电子地图包含的地理要素中与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素;渲染待渲染的三维电子地图时,使待隐藏地理要素不可见。
[0079]
可选地,隐藏模块306,用于根据所述四棱锥体与所述建筑物对应的轴坐标对齐包围盒的关系,确定与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素;渲染待渲染的三维电子地图时,使待隐藏地理要素不可见。
[0080]
可选地,隐藏模块306,用于获得所述四棱锥体相对于地面的三角形投影,以及所述建筑物对应的轴坐标对齐包围盒相对于地面的矩形投影;确定与所述三角形投影存在碰撞关系的矩形投影,并将存在碰撞关系的矩形投影对应的建筑物作为候选建筑物;判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒;将不存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒对应的候选建筑物,确定为与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素;渲染待渲染的三维电子地图时,使待隐藏地理要素不可见。
[0081]
可选地,隐藏模块306在判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒时,根据所述候选建筑物对应的轴坐标对齐包围盒的顶点坐标,判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒。
[0082]
可选地,隐藏模块306在根据所述候选建筑物对应的轴坐标对齐包围盒的顶点坐标,判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒时:确定所述四棱锥体朝向地面一侧的侧面对应的平面向量方程,及所述平面向量方程中分别与x轴坐标、y轴坐标和z轴坐标对应的系数;获得每个所述候选建筑物对应的轴坐标对齐包围盒的顶点坐标分别在x轴、y轴和z轴上的最大值和最小值;根据所述系数和所述最大值和最小值,获得每个所述候选建筑物对应的轴坐标对齐包围盒的判定顶点坐标;根据所述判定顶点坐标和所述平面向量方程,判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒。
[0083]
可选地,隐藏模块306在根据所述系数和所述最大值和最小值,获得每个所述候选建筑物对应的轴坐标对齐包围盒的判定顶点坐标时:针对每个所述候选建筑物对应的轴坐标对齐包围盒,和与x轴坐标、y轴坐标和z轴坐标对应的系数中的每个系数,若该系数大于0,则将该轴坐标对齐包围盒上该系数对应的轴向上的所述最大值确定为该轴向上的判定顶点坐标;否则,将该系数对应的轴向上的所述最小值确定为该轴向上的判定顶点坐标;根据确定的每个轴向上的判定顶点坐标,获得该轴坐标对齐包围盒的判定顶点坐标。
[0084]
可选地,隐藏模块306在根据所述判定顶点坐标和所述平面向量方程,判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒时:针对每个所述候选建筑物对应的轴坐标对齐包围盒,将该轴坐标对齐包围盒的判定顶点坐标作为所述平面向量方程中的坐标参数,获得方程结果;若所述方程结果大于0,则确定该轴坐标对齐包围盒不完全位于所述四棱锥体朝向地面一侧的侧面之下;若所述方程结果小于0,则确定该轴坐标对齐包围盒完全位于所述四棱锥体朝向地面一侧的侧面之下。
[0085]
本实施例的地图渲染装置用于实现前述多个方法实施例中相应的地图渲染方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的地图渲染装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
[0086]
实施例四
[0087]
参照图4,示出了根据本技术实施例四的一种电子设备的结构示意图,本技术具体实施例并不对电子设备的具体实现做限定。
[0088]
如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(communications interface)404、存储器(memory)406、以及通信总线408。
[0089]
其中:
[0090]
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
[0091]
通信接口404,用于与其它电子设备或服务器进行通信。
[0092]
处理器402,用于执行程序410,具体可以执行上述地图渲染方法实施例中的相关步骤。
[0093]
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
[0094]
处理器402可能是cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
[0095]
存储器406,用于存放程序410。存储器406可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0096]
程序410具体可以用于使得处理器402执行前述方法实施例一或二中所描述的地图渲染方法。
[0097]
程序410中各步骤的具体实现可以参见上述地图渲染方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0098]
通过本实施例的电子设备,在需要以三维方式呈现视野中心所在区域的信息时,通过基于视野中心对应的视锥体构建的四棱锥体,确定与四棱锥体产生碰撞的建筑物,也即影响当前视野的建筑物,以在呈现视野中心的三维图像时,将这些建筑物隐藏不可见。因四棱锥体基于视锥体构建,可看作是视锥体的延展,而视锥体是反映当前视野的有效表征,因此,与四棱锥体产生碰撞的建筑物就可被认为是影响当前视野的建筑物,通过在呈现三维图像时隐藏不可见这些建筑物,可有效保证视野中心信息的清晰呈现,提升三维地图呈
现效果和用户体验。
[0099]
此外,本技术实施例还提供了一种算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行上述实施例一或二中所描述的地图渲染方法对应的操作。
[0100]
需要指出,根据实施的需要,可将本技术实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本技术实施例的目的。
[0101]
上述根据本技术实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的地图渲染方法。此外,当通用计算机访问用于实现在此示出的地图渲染方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的地图渲染方法的专用计算机。
[0102]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
[0103]
以上实施方式仅用于说明本技术实施例,而并非对本技术实施例的限制,有关技术领域的普通技术人员,在不脱离本技术实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本技术实施例的范畴,本技术实施例的专利保护范围应由权利要求限定。
技术特征:1.一种地图渲染方法,包括:确定待渲染的三维电子地图的视野中心及与所述视野中心对应的视锥体;基于所述视锥体构建四棱锥体,其中,所述四棱锥体的顶点与所述视锥体的顶点相同,所述四棱锥体的底面为平行于所述视锥体的远裁剪面的矩形,所述矩形的中心为所述视野中心;确定所述三维电子地图包含的地理要素中与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素;渲染所述待渲染的三维电子地图时,使所述待隐藏地理要素不可见。2.根据权利要求1所述的方法,其中,所述确定所述三维电子地图包含的地理要素中与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素,包括:根据所述四棱锥体与所述建筑物对应的轴坐标对齐包围盒的关系,确定与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素。3.根据权利要求2所述的方法,其中,所述根据所述四棱锥体与所述建筑物对应的轴坐标对齐包围盒的关系,确定与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素,包括:获得所述四棱锥体相对于地面的三角形投影,以及所述建筑物对应的轴坐标对齐包围盒相对于地面的矩形投影;确定与所述三角形投影存在碰撞关系的矩形投影,并将存在碰撞关系的矩形投影对应的建筑物作为候选建筑物;判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒;将不存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒对应的候选建筑物,确定为与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素。4.根据权利要求3所述的方法,其中,所述判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒,包括:根据所述候选建筑物对应的轴坐标对齐包围盒的顶点坐标,判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒。5.根据权利要求4所述的方法,其中,所述根据所述候选建筑物对应的轴坐标对齐包围盒的顶点坐标,判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒,包括:确定所述四棱锥体朝向地面一侧的侧面对应的平面向量方程,及所述平面向量方程中分别与x轴坐标、y轴坐标和z轴坐标对应的系数;获得每个所述候选建筑物对应的轴坐标对齐包围盒的顶点坐标分别在x轴、y轴和z轴上的最大值和最小值;根据所述系数和所述最大值和最小值,获得每个所述候选建筑物对应的轴坐标对齐包围盒的判定顶点坐标;根据所述判定顶点坐标和所述平面向量方程,判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围
盒。6.根据权利要求5所述的方法,其中,所述根据所述系数和所述最大值和最小值,获得每个所述候选建筑物对应的轴坐标对齐包围盒的判定顶点坐标,包括:针对每个所述候选建筑物对应的轴坐标对齐包围盒,和与x轴坐标、y轴坐标和z轴坐标对应的系数中的每个系数,若该系数大于0,则将该轴坐标对齐包围盒上该系数对应的轴向上的所述最大值确定为该轴向上的判定顶点坐标;否则,将该系数对应的轴向上的所述最小值确定为该轴向上的判定顶点坐标;根据确定的每个轴向上的判定顶点坐标,获得该轴坐标对齐包围盒的判定顶点坐标。7.根据权利要求5或6所述的方法,其中,所述根据所述判定顶点坐标和所述平面向量方程,判断所述候选建筑物对应的轴坐标对齐包围盒中,是否存在完全位于所述四棱锥体朝向地面一侧的侧面之下的轴坐标对齐包围盒,包括:针对每个所述候选建筑物对应的轴坐标对齐包围盒,将该轴坐标对齐包围盒的判定顶点坐标作为所述平面向量方程中的坐标参数,获得方程结果;若所述方程结果大于0,则确定该轴坐标对齐包围盒不完全位于所述四棱锥体朝向地面一侧的侧面之下;若所述方程结果小于0,则确定该轴坐标对齐包围盒完全位于所述四棱锥体朝向地面一侧的侧面之下。8.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的地图渲染方法对应的操作。9.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一所述的地图渲染方法。10.一种计算机程序产品,包括计算机指令,所述计算机指令指示计算设备执行如权利要求1-7中任一所述的地图渲染方法对应的操作。
技术总结本申请实施例提供了一种地图渲染方法、电子设备及计算机存储介质,其中,地图渲染方法包括:确定待渲染的三维电子地图的视野中心及与所述视野中心对应的视锥体;基于所述视锥体构建四棱锥体,其中,所述四棱锥体的顶点与所述视锥体的顶点相同,所述四棱锥体的底面为平行于所述视锥体的远裁剪面的矩形,所述矩形的中心为所述视野中心;确定所述三维电子地图包含的地理要素中与所述四棱锥体产生碰撞的建筑物作为待隐藏地理要素;渲染所述待渲染的三维电子地图时,使所述待隐藏地理要素不可见。通过本申请实施例,可有效保证视野中心信息的清晰呈现,提升三维地图呈现效果和用户体验。提升三维地图呈现效果和用户体验。提升三维地图呈现效果和用户体验。
技术研发人员:陈华盛 白高成
受保护的技术使用者:阿里巴巴(中国)有限公司
技术研发日:2022.03.31
技术公布日:2022/7/5