一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

电子地图的渲染方法、装置和计算机程序产品与流程

2022-05-31 23:53:16 来源:中国专利 TAG:


1.本公开涉及地图渲染技术领域,尤其涉及一种电子地图的渲染方法、装置和计算机程序产品。


背景技术:

2.在电子地图渲染的过程中,有些用户比较偏爱三维视角,为了增加真实感,近距离三维视角下的电子地图中会显示立体的建筑物。
3.然而,当地图比例尺较大,也即显示的实际地理范围较小时,如果渲染用摄像机距离地面比较近,则较高的建筑物可能因为距离摄像机太近而穿透摄像机的近裁剪面,使得电子地图中显示的建筑物出现被切割的穿帮现象,影响电子地图的展示效果。


技术实现要素:

4.为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种电子地图的渲染方法、装置和计算机程序产品。
5.第一方面,本公开实施例提供了一种电子地图的渲染方法,包括:
6.获取三维展示状态下的近裁剪面,以及待渲染电子地图的渲染数据,所述渲染数据包括:建筑物;
7.确定所述建筑物和所述近裁剪面是否发生碰撞;
8.将与所述近裁剪面发生碰撞的建筑物从所述渲染数据中删除,得到目标渲染数据;
9.基于所述目标渲染数据,渲染电子地图。
10.第二方面,本公开实施例还提供了一种电子地图的渲染装置,包括:
11.获取三维展示状态下的近裁剪面,以及待渲染电子地图的渲染数据,所述渲染数据包括:建筑物;
12.确定所述建筑物和所述近裁剪面是否发生碰撞;
13.将与所述近裁剪面发生碰撞的建筑物从所述渲染数据中删除,得到目标渲染数据;
14.基于所述目标渲染数据,渲染电子地图。
15.第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;存储器,用于存储所述处理器可执行指令;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述可执行指令以实现本公开实施例提供的任一所述的电子地图的渲染方法。
16.第四方面,本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本公开实施例提供的任一所述的电子地图的渲染方法。
17.第五方面,本公开实施例还提供了一种计算机程序产品,所述计算机程序产品用
于执行本公开实施例提供的任一所述的电子地图的渲染方法。
18.本公开实施例提供的技术方案与现有技术相比至少具有如下优点:在本公开实施例中,渲染三维电子地图时,先获取三维展示状态下摄像机的近裁剪面以及待渲染电子地图的渲染数据,渲染数据包括建筑物,其中,近裁剪面是视椎体的靠近摄像机的平面,视椎体则是渲染引擎中透视摄像机可以渲染的区域,根据近裁剪面和需要展示的建筑物的位置关系,判断两者之间是否发生碰撞,当建筑物和近裁剪面发生碰撞时,说明该建筑物距离摄像机较近,穿透了摄像机的近裁剪面,导致建筑物被切割,因此将该建筑物从渲染数据中删除,得到目标渲染数据,并基于目标渲染数据,渲染电子地图,从而避免了将被切割的建筑物展示在三维电子地图中导致的穿帮现象,提升了三维电子地图的展示效果。
附图说明
19.结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
20.图1(a)为三维视角下电子地图的视椎体的姿态示例图;
21.图1(b)为建筑物出现穿帮现象的示例图;
22.图1(c)为建筑物遮挡视线的示例图;
23.图2为本公开实施例提供的一种电子地图的渲染方法的流程示意图;
24.图3为本公开实施例提供的一种第二触控操作的输入方式示例图;
25.图4为距离摄像机较近的建筑物删除前后的展示效果示例图;
26.图5为本公开实施例提供的另一种电子地图的渲染方法的流程示意图;
27.图6为本公开实施例提供的一种第一触控操作的输入方式示例图;
28.图7为本公开实施例提供的一种标准裁剪面移动前后的对比示例图;
29.图8为本公开实施例提供的一种电子地图的渲染装置的结构示意图;
30.图9为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
31.下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
32.应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
33.本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
34.需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单
元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
35.需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
36.在解释说明本公开实施例提供的电子地图的渲染方法之前,先对本公开实施例中可能涉及的术语进行解释。
37.视锥体:渲染引擎中,透视摄像机可以渲染的区域的形状,其形如一个顶部被平行于底部的平面切削后的四棱锥,摄像机位于四棱锥的顶点。
38.近裁剪面:视锥体的靠近摄像机的平面,平行于远裁剪面,完全处于近裁剪面之后(离摄像机更近)的物体将被剔除显示。
39.远裁剪面:视锥体的远离摄像机的平面,平行于近裁剪面,完全处于远裁剪面之前(离摄像机更远)的物体将被剔除显示。
40.图1(a)为三维视角下电子地图的视椎体的姿态示例图,图1(a)中,地面上站立的长方体代表建筑物,圆柱体代表摄像机,视椎体1的平面2为近裁剪面,近裁剪面和摄像机(视为一个点)构成一个四棱锥。从图1(a)可以看出,建筑物被近裁剪面切割,即建筑物与近裁剪面之间发生了碰撞,若在三维电子地图中显示该建筑物,则会出现穿帮现象,如图1(b)所示。如果建筑物与近裁剪面之间未发生碰撞,但建筑物距离近裁剪面很近,当在电子地图中显示该建筑物时,则该建筑物会占据电子地图的大部分区域,遮挡用户视线,如图1(c)所示,图1(c)中,13号楼对应的阴影区域是距离摄像头较近的建筑物,可见,三维电子地图的展示页面的大部分区域被该建筑物占据,影响了用户的视线,这也会降低电子地图的展示效果。
41.针对上述问题,本公开提供了一种电子地图的渲染方法,通过在渲染三维电子地图时,先判断摄像机的近裁剪面和需要展示的建筑物之间是否发生碰撞,并在确定建筑物与近裁剪面之间发生碰撞时,将该建筑物从获取的渲染数据中删除,得到目标渲染数据,并基于目标渲染数据渲染电子地图,从而能够避免将被切割的建筑物展示在三维电子地图中导致的穿帮现象,提升三维电子地图的展示效果。对于未发生碰撞但遮挡了用户视线的建筑物,可以通过先调整近裁剪面的位置,在确定建筑物与调整位置后的近裁剪面发生碰撞时,删除该建筑物的方式,来避免建筑物对用户视线的遮挡,提升三维电子地图的展示效果。
42.图2为本公开实施例提供的一种电子地图的渲染方法的流程示意图,可以适用于需要在三维电子地图中展示的建筑物距离摄像机太近,建筑物与摄像机的近裁剪面发生碰撞导致建筑物被切割而出现穿帮现象的情况。该电子地图的渲染方法可以由电子地图的渲染装置执行,该装置可以采用软件和/或硬件实现,并可集成在任意具有计算能力的电子设备上,例如智能手机、平板电脑等终端设备,或者,也可以集成在车载终端设备上,例如车载导航系统,或者,也可以集成在电子地图对应的服务器上。具体地,电子地图的渲染装置可以采用具有定位与导航功能的独立应用程序或者小程序的形式实现,也可以采用作为具有定位与导航功能的应用程序或小程序中的集成功能模块的形式实现,本公开实施例对此不作具体限定。
43.如图2所示,本公开实施例提供的电子地图的渲染方法可以包括:
44.s101、获取三维展示状态下的近裁剪面,以及待渲染电子地图的渲染数据,所述渲
染数据包括:建筑物。
45.为了方便用户的出行和生活,用户使用的终端设备上通常安装有电子地图。在用户使用电子地图的过程中,用户可以选择在二维展示状态下观看电子地图,也可以选择在三维展示状态下观看地图。当用户选择在三维展示状态下观看电子地图时,终端设备获取三维展示状态下的近裁剪面,以及获取需要展示的建筑物,其中,需要展示的建筑物包含在待渲染电子地图的渲染数据中。
46.能够理解的是,三维电子地图的展示可以是基于安装在现实环境中的摄像机来采集现实环境的图像后,进行渲染实现,摄像机可以获取其拍摄范围内的实景图像,包括现实环境中需要展示的建筑物,终端设备根据摄像机获取的实景图像可以获取待渲染电子地图的渲染数据。
47.示例性地,终端设备可以通过通用的定位技术获取用户当前所在的位置信息,并根据获取的位置信息确定用户所在位置处的目标摄像机,根据目标摄像机采集的实景图像获取待渲染电子地图的渲染数据,当实景图像中包含建筑物时,则获取的渲染数据中包括建筑物。
48.示例性地,终端设备可以在展示地图的过程中,获取用户对当前界面中显示的地图内容的触控操作,并根据用户操作确定待渲染电子地图的渲染数据,获取渲染数据中的建筑物。具体地,终端设备可以接收用户输入的第二触控操作,并基于第二触控操作确定待渲染电子地图的渲染数据,渲染数据中可以包含建筑物。
49.其中,第二触控操作是指切换当前的三维展示状态下的展示内容的操作,比如第二触控操作可以是对终端设备的界面中展示的地图内容的拖动操作。图3为本公开实施例提供的一种第二触控操作的输入方式示例图,如图3所示,用户可以向上滑动展示页面,如图3的左图所示,之后,左图中所示的展示内容下方未被显示的其他内容显示出来,滑动后的展示内容如图3的右图所示。用户也可以向左滑动展示页面以展示出当前展示内容右侧未被显示的其他内容,用户还可以向下、向右滑动展示页面以展示其他方向的内容。需要说明的是,图3仅用于对本公开实施例进行示例性说明,不应理解为对本公开实施例的具体限定。响应于用户输入的第二触控操作,摄像机的朝向会发生变化,从而摄像机的拍摄范围内的物体会发生变化,终端设备获取的渲染数据也随之发生变化,可以将变化后的物体中包含的建筑物确定为渲染数据中包含的建筑物。
50.在本公开实施例中,基于用户输入的第二触控操作,确定当前三维展示状态下渲染数据中包含的需要展示的建筑物,能够根据用户的需求灵活确定需要展示的建筑物,进而对建筑物进行是否需要渲染的判断,保证了方法的灵活性。
51.本公开实施例中,三维展示状态至少包括当前展示的三维电子地图界面的比例尺,比如,若用户未调整比例尺,则当前的比例尺为默认比例尺,例如为1:100,用户还可以通过放大或缩小三维电子地图的展示界面来调整比例尺的大小。根据当前的比例尺,可以确定近裁剪面。
52.示例性地,可以预先设置并存储不同大小的比例尺与近裁剪面的位置之间的对应关系表,其中,不同近裁剪面的位置可以用摄像机到近裁剪面的距离不同来表示,如表1所示,表1中所述的距离是指摄像机到近裁剪面的垂直距离,其中,比例尺p1》p2》p3,垂直距离d1》d2》d3,从表1可以看出,比例尺越大,摄像机与近裁剪面之间的距离越大,也即近裁剪面
距离摄像机越远。从而,对于已知的比例尺,可以通过查询预设的对应关系表1,确定与当前的比例尺对应的垂直距离,进而根据确定的垂直距离确定近裁剪面。例如,假设当前的比例尺为p2,则通过查询表1,可以确定与p2对应的垂直距离为d2,则可以确定近裁剪面为摄像机的可渲染区域内与摄像机之间的距离为d2的平面。
53.表1
[0054][0055][0056]
需要说明是的,表1所示的比例尺与距离之间的对应关系仅用于对本公开实施例进行示例性说明,不应理解为对本公开实施例的具体限定。
[0057]
s102、确定所述建筑物和所述近裁剪面是否发生碰撞。本公开实施例中,建筑物和近裁剪面发生碰撞,是指建筑物与近裁剪面之间存在重叠区域,或者说,建筑物上的各个坐标点中,存在至少一个坐标点位于近裁剪面的靠近摄像机的一侧。因此,关于建筑物与近裁剪面是否发生碰撞的判断,可以转化为建筑物上的坐标点与近裁剪面的位置关系的判断,具体的判断过程将在后续实施例中进行详细说明,此处不作过多描述。
[0058]
此外,建筑物和近裁剪面之间是否发生碰撞的判断,还可以采用现有技术中任意可用的物体碰撞检测方式实现,本公开实施例不作具体限定。
[0059]
s103、将与所述近裁剪面发生碰撞的建筑物从所述渲染数据中删除,得到目标渲染数据。
[0060]
本公开实施例中,当确定渲染数据中的某个建筑物与获取的近裁剪面发生碰撞时,则将该与近裁剪面发生碰撞的建筑物从渲染数据中删除,得到目标渲染数据,则目标渲染数据中不包含与近裁剪面发生碰撞的建筑物。
[0061]
s104、基于所述目标渲染数据,渲染电子地图。
[0062]
本公开实施例中,在删除渲染数据中与近裁剪面发生碰撞的建筑物得到目标渲染数据之后,可以基于目标渲染数据进行地图渲染,将渲染后的地图内容展示在终端设备的界面中。图4为距离摄像机较近的建筑物删除前后的展示效果示例图,图4中的建筑物与摄像机的近裁剪面发生碰撞,若在三维电子地图中展示该建筑物,则该建筑物被分割成两部分,发生穿帮现象,如图4的左图所示,若删除该建筑物后再展示三维电子地图,则避免了穿帮现象,如图4的右图所示。
[0063]
在本公开实施例中,当确定渲染数据中包含的建筑物与近裁剪面之间发生碰撞时,则将该建筑物从渲染数据中删除,得到目标渲染数据,进而基于目标渲染数据渲染电子地图,由此,能够将距离摄像机较近的建筑物删除,避免建筑物与摄像机的近裁剪面发生碰撞时展示所述建筑物而导致建筑物被切割的穿帮现象,提升三维电子地图的展示效果。
[0064]
现实环境中的建筑物的形状是多种多样的,并非都是规则的长方体,比如,有的建筑物的顶部是半球体,有的建筑物的顶部是三棱锥,而有的建筑物的顶部则是避雷针。为了简便计算,在判断建筑物与摄像机的近裁剪面是否发生碰撞时,可以先建立包围建筑物的
坐标轴对齐包围盒,再基于该建筑物的坐标轴对齐包围盒来判断该建筑物是否与近裁剪面发生碰撞。也就是说,在本公开的一种可选实施方式中,如图5所示,确定所述建筑物和所述近裁剪面是否发生碰撞,包括:
[0065]
s201,建立包围所述建筑物的坐标轴对齐包围盒。
[0066]
建筑物的坐标轴对齐包围盒(axis aligned bounding box,aabb),是包含该建筑物,且边平行于坐标轴的最小六面体,若建筑物是垂直于地面的长方体,则该建筑物的坐标轴对齐包围盒是其自身。aabb包围盒的参数获取比较简单,仅需获取六个标量,即获取x、y、z这三个坐标轴上的最大值和最小值,因此所需的存储空间也比较小。
[0067]
示例性地,关于建筑物的坐标轴对齐包围盒的参数的获取,可以采用现有技术中任意可用的包围盒参数获取方式实现,例如,通过视觉化工具函数库(visualization toolkit,vtk)中定义的getbounds()函数来获取,本公开实施例不作具体限定。
[0068]
s202,基于所述建筑物的坐标轴对齐包围盒,以及所述近裁剪面确定是否发生碰撞。
[0069]
本公开实施例中,建立包围建筑物的坐标轴对齐包围盒之后,则将建筑物与近裁剪面的碰撞问题,转化为坐标轴对齐包围盒与近裁剪面的碰撞问题,有利于降低计算成本。
[0070]
在本公开的一种可选实施方式中,基于建筑物的坐标轴对齐包围盒,以及所述近裁剪面确定是否发生碰撞,包括:基于gjk算法确定所述建筑物的坐标轴对齐包围盒与所述近裁剪面是否发生碰撞。
[0071]
其中,gjk算法(全称gilbert

johnson

keerthi distance algorithm)是用于检测两个凸多面体是否发生碰撞的主流算法,gjk算法中使用了明可夫斯基和(minkowski sum)的概念,假设有两个物体,它们的明可夫斯基和就是物体1上的所有点和物体2上的所有点的和集,如果两个物体都是凸体,它们的明可夫斯基和也是凸体;对于减法,明可夫斯基和的概念也成立,这时也可称作明可夫斯基差,在两个物体之间执行明可夫斯基差操作,如果两个物体重叠或者相交,它们的明可夫斯基差肯定包括原点,则,判断两个物体是否发生碰撞的问题转换为判断这两个物体之间的明可夫斯基差是否包含原点的问题。gjk算法的思想就是在明可夫斯基差形成的物体内迭代的形成一个多面体,并使这个多面体尽量包围原点,如果能够找到一个多面体包含原点,显然明可夫斯基差形成的物体也包括原点,从而证明这两个物体发生碰撞。
[0072]
由于近裁剪面与摄像机构成了一个四棱锥,判断建筑物的坐标轴对齐包围盒与近裁剪面是否发生碰撞,可以看作是判断建筑物的坐标轴对齐包围盒与四棱锥是否发生碰撞,这是两个凸多面体的碰撞检测,因此可以采用gjk算法进行检测,若建筑物的坐标轴对齐包围盒与四棱锥发生碰撞,则确定建筑物的坐标轴对齐包围盒与近裁剪面发生碰撞。通过gjk算法来确定建筑物的坐标轴对齐包围盒与近裁剪面是否发生碰撞,实现了严格的碰撞检测,检测结果更准确。
[0073]
在本公开的一种可选实施方式中,基于建筑物的坐标轴对齐包围盒,以及所述近裁剪面确定是否发生碰撞,包括:
[0074]
确定所述建筑物的坐标轴对齐包围盒的顶点坐标;
[0075]
确定所述近裁剪面的平面解析式;
[0076]
基于所述建筑物的坐标轴对齐包围盒的顶点坐标,以及所述近裁剪面的平面解析
式,确定是否发生碰撞。
[0077]
本公开实施例中,建筑物的坐标轴对齐包围盒是包含该建筑物,且边平行于坐标轴的最小六面体,已知建筑物上各坐标点的坐标,可以确定建筑物的坐标轴对齐包围盒的各顶点坐标。需要说明的是,为了降低运算量,也可以预先确定并存储各建筑物的坐标轴对齐包围盒的顶点坐标数据,在需要时直接调用即可。
[0078]
能够理解的是,判断建筑物的坐标轴对齐包围盒与近裁剪面是否发生碰撞,也即判断建筑物的坐标轴对齐包围盒是否完全处于近裁剪面的远离摄像机的一侧,若是则未发生碰撞,否则确定发生碰撞。判断坐标轴对齐包围盒是否完全处于一个平面的一侧,等价于判断坐标轴对齐包围盒的所有顶点是否处于该平面的一侧。
[0079]
假设近裁剪面的平面解析式为function(x,y,z)=ax by cz d=0,其中,系数a、b、c和d的值可以通过计算得到,由于三点确定一个平面,基于近裁剪面上任意三个点的坐标值,可以确定该平面解析式的系数,也确定了近裁剪面的平面解析式。并且,假设当点(x,y,z)处于近裁剪面的远离摄像机的一侧时,有function(x,y,z)《0,设建筑物的坐标轴对齐包围盒在x、y和z三个坐标轴上的坐标值范围分别为[x
min
,x
max
],[y
min
,y
max
],[z
min
,z
max
],则在建筑物的坐标轴对齐包围盒的8个顶点中,另上述近裁剪面的平面解析式取值最大的顶点(u,v,w)可以通过以下条件:
[0080]
在a》0时,u的取值为x
max
,否则,u的取值为x
min
,具体可以表示为:
[0081]
u=x
max if a》0 else x
min

[0082]
在b》0时,v的取值为y
max
,否则,v的取值为y
min
,具体可以表示为:
[0083]
v=y
max if b》0 else y
min

[0084]
在c》0时,w的取值为z
max
,否则,w的取值为z
min
,具体可以表示为:
[0085]
w=z
max if c》0 else z
min

[0086]
可见,经过上述三次简单的比较运算,可以确定(u,v,w)的值。接着,求解function(u,v,w)的值,若function(u,v,w)》0,则确定建筑物的坐标轴对齐包围盒与近裁剪面发生碰撞,也即确定该建筑物与该近裁剪面发生碰撞。
[0087]
从上述碰撞检测过程可以看出,在已知建筑物的坐标轴对齐包围盒的数据,以及计算好近裁剪面的平面解析式的各系数的前提下,仅通过四次比较运算和一次function(u,v,w)的计算即可判断出建筑物与近裁剪面是否发生碰撞,降低了计算复杂度,计算成本低。
[0088]
在本公开的一种可选实施方式中,所述获取三维展示状态下的近裁剪面,包括:
[0089]
确定三维展示状态下的展示比例尺;
[0090]
基于所述展示比例尺确定所述近裁剪面。
[0091]
能够理解的是,在电子地图工作过程中,随着电子地图工作状态的变化,电子地图的比例尺可以动态调整,或者是在用户使用电子地图的过程中,用户可以根据需求放大或缩小终端设备的界面中展示的电子地图,在用户放大或缩小电子地图时,电子地图的展示比例尺随之调整。因此,一种可选实施方式中,还可以接收用户输入的第一触控操作,基于第一触控操作来确定三维展示状态下的展示比例尺。
[0092]
其中,第一触控操作是指用户对三维电子地图的展示比例尺进行调整的操作。示例性的,图6为本公开实施例提供的一种第一触控操作的输入方式示例图,如图6所示,在三
维电子地图的展示界面中显示有用于调整展示界面的展示比例尺的触控按键“ ”和
“‑”
,当用户点击一次“ ”时,则在当前的展示比例尺的基础上,按照预设的调整幅度增大展示比例尺;当用户点击一次
“‑”
时,则在当前的展示比例尺的基础上,按照预设的调整幅度减小展示比例尺。其中,不同的展示比例尺可以对应相同或不同的调整幅度,比如,可以设置调整幅度固定为1/100,也可以设置调整幅度与当前的展示比例尺相同,例如,当前的展示比例尺为1/200(如图6所示,比例尺显示为200米,即表示展示比例尺为1:200),则对应的调整幅度为1/200,当前的展示比例尺为1/100,则对应的调整幅度为1/100,本公开对此不作限定。此外,用户也可以通过放大或缩小展示界面的方式来调整展示比例尺,当用户输入放大展示界面的操作(两指相背滑动展示界面,如图6所示)时,则在当前的展示比例尺的基础上,按照预设的调整幅度增大展示比例尺;当用户输入缩小展示界面的操作(两指相向滑动展示界面)时,则在当前的展示比例尺的基础上,按照预设的调整幅度减小展示比例尺。也就是说,用户输入的第一触控操作可以是对特定的调整按键的操作,也可以是对展示界面的缩放操作。应当说明的是,图6仅用于对本公开实施例进行示例性说明,不应理解为对本公开实施例的具体限定。
[0093]
当接收到用户输入的第一触控操作时,可以根据该第一触控操作,对当前的展示比例尺进行调整,得到调整后的展示比例尺。比如,当前的展示比例尺为1/200,用户输入的第一触控操作为点击“ ”一次,假设当前的展示比例尺对应的调整幅度为1/200,则经过第一触控操作调整后的展示比例尺为1/100。终端设备将调整后的展示比例尺确定为三维展示状态下的展示比例尺。
[0094]
接着,基于确定的三维展示状态下的展示比例尺,可以确定近裁剪面。如上述实施例所述,可以预设设置好不同的展示比例尺与近裁剪面的对应关系表,通过查询该对应关系表,确定与当前的展示比例尺对应的近裁剪面。
[0095]
在本公开实施例中,确定三维展示状态下的展示比例尺,并基于展示比例尺确定近裁剪面,实现了近裁剪面随展示比例尺变化而灵活调整,保证了方法的灵活性。
[0096]
进一步地,在本公开的一种可选实施方式中,基于所述展示比例尺确定所述近裁剪面,还包括:
[0097]
基于所述展示比例尺确定展示四棱锥,所述展示四棱锥由标准裁剪面和相机点位构成;
[0098]
将所述标准裁剪面作为所述近裁剪面,或者将所述标准裁剪面沿远离所述相机点位方向移动预设距离后得到所述近裁剪面。
[0099]
本公开实施例中,标准裁剪面是预先设定的,对于相同的展示比例尺,摄像机的标准裁剪面是固定的,应当说明的是,此处所述的标准裁剪面是固定的,是指摄像机的相机点位到标准裁剪面的距离是固定的,而非标准裁剪面的位置固定,在同一展示比例尺下,当摄像机的朝向发生变化时,标准裁剪面的位置随摄像机朝向的改变会发生变化,但相机点位到标准裁剪面的距离不变。
[0100]
示例性地,可以预先建立并存储不同的展示比例尺与标准裁剪面的对应关系,在确定了展示比例尺后,通过查询该对应关系,可以确定与当前的展示比例尺对应的标准裁剪面,进而由确定的标准裁剪面和摄像机的相机点位,能够确定展示四棱锥。
[0101]
本公开实施例中,可以将标准裁剪面作为近裁剪面,判断是否有建筑物与近裁剪
面发生碰撞,若存在某个建筑物与该近裁剪面发生碰撞,则将该建筑物删除,以解决展示该建筑物导致的穿帮现象。而对于某个未与标准裁剪面发生碰撞的建筑物,当某个建筑物距离摄像机较近时,该建筑物展示在三维电子地图中时会占据大部分的展示区域,遮挡用户的视线,此时基于标准裁剪面无法将该建筑物删除,这种情况下,可以将标准裁剪面沿远离相机点位方向移动预设距离后得到近裁剪面,其中,预设距离可以根据经验值确定。当用平面解析式来表示标准裁剪面时,可以通过改变平面解析式的常数系数的方式来移动标准裁剪面,得到近裁剪面。示例性地,图7为本公开实施例提供的一种标准裁剪面移动前后的对比示例图,其中,左图为标准裁剪面与建筑物的位置关系示例图,右图为沿远离摄像机的方向移动标准裁剪面预设距离后,得到的近裁剪面与建筑物的位置关系示例图,从图7可以看出,通过移动标准裁剪面得到近裁剪面,使得原本未与标准裁剪面发生碰撞的建筑物,与移动标准裁剪面得到的近裁剪面发生了碰撞,进而能够将该建筑物删除,扩大了需要删除的建筑物的范围,能够解决距离摄像机较近的建筑物遮挡用户视线的问题,提升三维电子地图的展示效果。
[0102]
图8为本公开实施例提供的一种电子地图的渲染装置的结构示意图,该装置可以采用软件和/或硬件实现,并可集成在任意具有计算能力的电子设备上,例如智能手机、平板电脑等终端设备。
[0103]
如图8所示,本公开实施例提供的电子地图的渲染装置300可以包括获取模块301、碰撞确定模块302、删除模块303和渲染模块304,其中:
[0104]
获取模块301,用于获取三维展示状态下的近裁剪面,以及待渲染电子地图的渲染数据,所述渲染数据包括:建筑物;
[0105]
碰撞确定模块302,用于确定所述建筑物和所述近裁剪面是否发生碰撞;
[0106]
删除模块303,用于将与所述近裁剪面发生碰撞的建筑物从所述渲染数据中删除,得到目标渲染数据;
[0107]
渲染模块304,用于基于所述目标渲染数据,渲染电子地图。
[0108]
可选地,碰撞确定模块302包括:
[0109]
建立单元,用于建立包围所述建筑物的坐标轴对齐包围盒;
[0110]
碰撞确定单元,用于基于所述建筑物的坐标轴对齐包围盒,以及所述近裁剪面确定是否发生碰撞。
[0111]
可选地,所述碰撞确定单元,具体用于基于gjk算法确定所述建筑物的坐标轴对齐包围盒与所述近裁剪面是否发生碰撞。
[0112]
可选地,所述碰撞确定单元,具体用于:
[0113]
确定所述建筑物的坐标轴对齐包围盒的顶点坐标;
[0114]
确定所述近裁剪面的平面解析式;
[0115]
基于所述建筑物的坐标轴对齐包围盒的顶点坐标,以及所述近裁剪面的平面解析式,确定是否发生碰撞。
[0116]
可选地,所述获取模块301包括:
[0117]
展示比例尺确定单元,用于确定三维展示状态下的展示比例尺;
[0118]
近裁剪面确定单元,用于基于所述展示比例尺确定所述近裁剪面。
[0119]
可选地,近裁剪面确定单元,具体用于:
[0120]
基于所述展示比例尺确定展示四棱锥,所述展示四棱锥由标准裁剪面和相机点位构成;
[0121]
将所述标准裁剪面作为所述近裁剪面,或者将所述标准裁剪面沿远离所述相机点位方向移动预设距离后得到所述近裁剪面。
[0122]
本公开实施例所提供的可配置于电子设备上的电子地图的渲染装置,可执行本公开实施例所提供的任意可应用于电子设备的电子地图的渲染方法,具备执行方法相应的功能模块和有益效果。本公开装置实施例中未详尽描述的内容可以参考本公开任意方法实施例中的描述。
[0123]
图9为本公开实施例提供的一种电子设备的结构示意图,用于对实现本公开实施例中任意电子地图的渲染方法的电子设备进行示例性说明,不应理解为对本公开实施例的具体限定。
[0124]
如图9所示,电子设备400可以包括处理器(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(rom)402中的程序或者从存储装置408加载到随机访问存储器(ram)403中的程序而执行各种适当的动作和处理。在ram403中,还存储有电子设备400操作所需的各种程序和数据。处理器401、rom 402以及ram 403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。
[0125]
通常,以下装置可以连接至i/o接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408;以及通信装置409。通信装置409可以允许电子设备400与其他设备进行无线或有线通信以交换数据。虽然示出了具有各种装置的电子设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
[0126]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从rom 402被安装。在该计算机程序被处理器401执行时,可以执行本公开实施例提供的任意电子地图的渲染方法中限定的功能。
[0127]
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外
的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0128]
在一些实施方式中,客户端、服务端可以利用诸如http(hypertext transfer protocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”),广域网(“wan”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
[0129]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
[0130]
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取三维展示状态下的近裁剪面,以及待渲染电子地图的渲染数据,所述渲染数据包括:建筑物;确定所述建筑物和所述近裁剪面是否发生碰撞;将与所述近裁剪面发生碰撞的建筑物从所述渲染数据中删除,得到目标渲染数据;基于所述目标渲染数据,渲染电子地图。
[0131]
在本公开实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言,诸如java、smalltalk、c ,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在计算机上执行、部分地在计算机上执行、作为一个独立的软件包执行、部分在计算机上部分在远程计算机上执行、或者完全在远程计算机或服务端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0132]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0133]
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
[0134]
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。
[0135]
在本公开的上下文中,计算机可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。计算机可读介质可以是计算机可读信号介质或计算机可读储存介质。计算机可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。计算机可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
[0136]
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
[0137]
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
[0138]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献