发布信息

地图要素的碰撞检测方法、装置、设备及程序产品与流程 专利技术说明

作者:admin      2023-07-05 12:35:52     329



计算;推算;计数设备的制造及其应用技术1.本技术涉及地图渲染技术领域,尤其涉及一种地图要素的碰撞检测方法、装置、设备及程序产品。背景技术:2.随着基于位置服务的发展,电子地图的使用场景越来越多,电子地图是现实世界在数字世界的表达,用户通过显示在用户设备屏幕上的电子地图可以浏览、查询现实世界中的地点,比如商场、酒店、公交站、店铺、住宅等,其中,商场、酒店、公交站、店铺、住宅等地点在电子地图中通常被称为兴趣点(point of interest,poi),兴趣点是电子地图中的一类地图要素,电子地图中还包括道路、绿地、水系等地图要素。3.用户设备屏幕上显示的电子地图与用户的浏览位置相关,当用户的浏览位置周边的兴趣点非常多时,为避免poi之间或者poi与其他地图要素(比如建筑物、树木、道路等)之间出现遮挡问题,现有技术将电子地图显示在用户设备屏幕之前,对电子地图中的地图要素执行碰撞检测,也就是检测存在遮挡问题的地图要素,并对存在遮挡的地图要素进行一定的处理,以解决遮挡带来的用户体验不佳的问题。4.随着电子地图的显示效果从二维发展到三维,地图渲染对用户设备资源的消耗也在变多,如果每渲染一帧电子地图,执行一次碰撞检测,则会导致用户设备资源消耗非常大,导致地图渲染出现卡顿或用户设备发热等问题。技术实现要素:5.本技术实施例的主要目的在于提供一种地图要素的碰撞检测方法、装置、设备及程序产品,能够降低用户设备资源消耗,进而避免地图渲染出现卡顿或用户设备发热等问题,提升用户的服务体验。6.第一方面,本技术实施例提供一种地图要素的碰撞检测方法,包括:7.检测屏幕当前显示的电子地图的状态变化,当所述状态变化表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同且待显示的电子地图中的地图要素稳定时,至少在将所述待显示的电子地图显示在所述屏幕时,执行碰撞检测,所述碰撞检测包括:8.从待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据,所述预设类型不包括兴趣点;9.确定待显示的电子地图中的兴趣点的深度数据;10.将所述预设类型的地图要素的深度数据与所述兴趣点的深度数据进行比较,得到需要在待显示的电子地图中显示的兴趣点。11.可选的,在检测到待显示的电子地图中的地图要素和当前显示的电子地图中的地图要素不同时,所述方法进一步包括:12.检测变化时长,每当所述变化时长达到预设的检测时长但所述待显示的电子地图中的地图要素不稳定时,执行一次所述碰撞检测,若所述待显示的电子地图中地图要素不稳定,则返回检测变化时长的步骤,直到所述待显示的电子地图中的地图要素稳定时,在将所述待显示的电子地图显示在所述屏幕时,执行碰撞检测。13.可选的,所述检测屏幕当前显示的电子地图的状态变化,具体包括:14.检测屏幕当前显示的电子地图的比例尺状态变化或者摄像机状态变化。15.可选的,所述比例尺状态变化是从目标比例尺变化为与目标比例尺不同的比例尺,则表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同,所述目标比例尺是所述当前显示的电子地图的比例尺。16.可选的,所述摄像机状态变化包括方向状态变化和位置状态变化;17.若待显示的电子地图的摄像机的朝向角与所述当前显示的电子地图的摄像机的朝向角之间的差值,大于预设的角度阈值,则表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同,18.或者,若待显示的电子地图的摄像机的位置到所述当前显示的电子地图的摄像机的位置的距离大于预设的距离阈值,则表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同。19.可选的,所述方法进一步包括:20.基于待显示的电子地图的地图数据,生成所述地图数据中包括的地图要素的渲染数据,所述渲染数据包括:深度数据,所述深度数据与像素点对应。21.可选的,图形处理器gpu基于待显示的电子地图的地图数据,生成所述地图数据中包括的地图要素的渲染数据;22.所述从待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据,具体为:23.中央处理器cpu从所述图形处理器gpu生成的待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据。24.第二方面,本技术实施例提供一种地图要素的碰撞检测装置,包括:25.第一检测模块,用于检测屏幕当前显示的电子地图的状态变化;26.第二检测模块,用于在所述状态变化表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同且待显示的电子地图中的地图要素稳定时,至少在将所述待显示的电子地图显示在所述屏幕时,触发碰撞检测模块;27.所述碰撞检测模块,包括:28.深度数据读取单元,用于从待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据,所述预设类型不包括兴趣点;29.深度数据计算单元,用确定待显示的电子地图中的兴趣点的深度数据;30.深度数据比较单元,用于将所述预设类型的地图要素的深度数据与所述兴趣点的深度数据进行比较,得到需要在待显示的电子地图中显示的兴趣点。31.可选的,所述装置进一步包括:第三检测模块;32.所述第三检测模块,用于在检测到待显示的电子地图中的地图要素和当前显示的电子地图中的地图要素不同时,检测变化时长,每当所述变化时长达到预设的检测时长但所述待显示的电子地图中的地图要素不稳定时,执行一次所述碰撞检测,若所述待显示的电子地图中地图要素不稳定,则返回检测变化时长的步骤,直到所述待显示的电子地图中的地图要素稳定时,在将所述待显示的电子地图显示在所述屏幕时,触发所述碰撞检测模块。33.第三方面,本技术实施例提供一种电子设备,包括:34.至少一个处理器;以及35.与所述至少一个处理器通信连接的存储器;36.其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述电子设备执行上述任一方面所述的方法。37.第四方面,本技术实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方面所述的方法。38.本技术实施例提供的地图要素的碰撞检测方法、装置、设备及程序产品,可以通过检测屏幕当前显示的电子地图的状态变化,当所述状态变化表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同且待显示的电子地图中的地图要素稳定时,至少在将所述待显示的电子地图显示在所述屏幕时,执行碰撞检测;进一步的,碰撞检测包括:从待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据,所述预设类型不包括兴趣点;确定待显示的电子地图中的兴趣点的深度数据;将所述预设类型的地图要素的深度数据与所述兴趣点的深度数据进行比较,得到需要在待显示的电子地图中显示的兴趣点。本技术可以通过检测屏幕当前显示的电子地图的状态变化,来确定是否需要进行碰撞检测,而不是在电子地图中每帧地图的渲染过程都进行碰撞检测来实现poi的更新,减少了性能消耗;如果确定执行碰撞检测,首先从待显示的电子地图的渲染数据中,读取不包括poi的预设类型的地图要素的深度数据,同时确定待显示的电子地图中的poi的深度数据,然后将两者的深度数据进行比较,确定是否在地图上渲染poi,使得碰撞检测更为直观、有效,进而保证地图渲染结果的准确性,提升用户的服务体验。附图说明39.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。40.图1为本技术实施例涉及的一种应用场景示意图;41.图2为本技术实施例提供的一种地图要素的碰撞检测方法的流程示意图;42.图3为本技术实施例提供的另一种应用场景示意图;43.图4为本技术实施例提供的另一种地图要素的碰撞检测方法的流程示意图;44.图5为本技术实施例提供的一种地图要素的碰撞检测装置的结构示意图;45.图6为本技术实施例提供的一种电子设备的结构示意图。46.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。具体实施方式47.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。48.首先对本技术所涉及的名词进行解释:49.深度数据:表示的是电子地图中的地图要素到摄像机的距离,由于地图要素显示在屏幕中时会覆盖一定量的像素点,因此,针对该地图要素覆盖的每一个像素点都会有一个深度数据或深度值。当执行地图渲染的终端设备的硬件性能普通时,深度数据的值要转化为rgb的值。50.在需要使用电子地图的应用软件中,如果poi的展示逻辑中没有执行和预设类型的地图要素(比如,建筑物、树等)进行碰撞检测的逻辑,在电子地图中,特别是三维电子地图中,意味着位于某座建筑后面的poi会被显示在建筑上,而在现实世界中,用户无法穿透建筑看到建筑后面的poi的,当用户在三维电子地图中,看到建筑上显示的poi时会产生混乱,不清楚该poi是位于建筑内还是建筑后面。因此,为了确保用户体验,在渲染电子地图的过程中,需要对地图要素进行碰撞检测,也就是检测存在遮挡问题的地图要素,并对存在遮挡的地图要素进行一定的处理,以解决遮挡带来的用户体验不佳的问题。51.然而,随着电子地图的显示效果从二维发展到三维,地图渲染对用户设备资源的消耗也在变多,如果每渲染一帧电子地图,执行一次碰撞检测,则会导致用户设备资源消耗非常大,导致地图渲染出现卡顿或用户设备发热等问题。因此,现有技术存在用户设备资源消耗非常大,导致地图渲染出现卡顿或用户设备发热等问题,使得用户体验较差。52.有鉴于此,本技术实施例提供一种地图要素的碰撞检测方法,为了提高用户体验,降低用户设备资源消耗,进而避免地图渲染出现卡顿或用户设备发热等问题,可以通过检测屏幕当前显示的电子地图的状态变化,来确定是否需要进行碰撞检测,而不是在每帧电子地图的渲染过程都进行碰撞检测,减少了性能消耗;如果确定执行碰撞检测,将从待显示的电子地图的渲染数据中读取预设类型的地图要素的深度数据,与待显示的电子地图中的poi的深度数据进行比较,确定能够在电子地图上渲染的poi,使得碰撞检测的功耗更低且保证地图渲染结果的准确性,提升用户体验。53.下述对电子地图中预设类型的地图要素(比如,建筑物、树木等,下述称对象,以对象为建筑物为例)与poi(比如,在电子地图中商场、酒店、公交站、店铺、住宅等地点)执行碰撞检测的过程进行详细说明。54.图1为本技术实施例涉及的一种应用场景示意图。如图1所示,本技术实施例提供的地图要素的碰撞检测方法可以应用于如图1所示的应用场景中,该应用场景包括:用户设备;其中,用户设备上安装了具备电子地图渲染能力的客户端101(客户端可以为应用程序/软件),用户通过客户端101查看电子地图,以通过电子地图获取其需要的信息(比如用户所处位置附近的美食,或者,某个位置周边的道路详情等,在此不做具体限定)。将电子地图渲染在用户设备中的屏幕中,通常是由用户设备中的逻辑处理单元102(比如,cpu)进行电子地图的渲染数据的逻辑处理,由用户设备中的显示芯片103(比如,gpu)将电子地图渲染在用户设备屏幕上,供用户查看。由于电子地图是现实世界在数字世界的表达,因此,需要确保用户使用电子地图的体验和现实世界一致,比如,人看不见被建筑物挡住的地理要素。55.为了确保用户使用电子地图的体验,本技术当用户针对用户设备屏幕中当前显示的电子地图进行交互操作时,比如,地图缩放操作,cpu检测到该缩放操作,则判断该操作是否导致用户设备屏幕中待显示的电子地图与当前显示的电子地图相比发生了变化,如果发生了变化且变化不再继续,即,待显示的电子地图中的地图要素稳定(即,用户缩放操作结束,也就是用户不再针对电子地图进行操作)时,则至少在将所述待显示的电子地图显示在所述屏幕时,执行碰撞检测,因此,本技术cpu根据用户设备屏幕中显示的电子地图的状态变化,确定是否执行碰撞检测,无需在电子地图中渲染的每帧地图都进行碰撞检测,降低了用户设备资源消耗。以下结合附图对本技术相关实施例进行具体说明。56.以电子地图的三维渲染场景为例,用户通过客户端选定三维渲染场景时,用户在屏幕上可以看到三维电子地图,用户可以对该电子地图进行拖拽、渲染、缩放操作,基于用户的操作,该电子地图中渲染显示的地理要素会发生变化。为了降低用户设备资源消耗,本技术通过检测屏幕当前显示的电子地图的状态变化,进而确定是否执行碰撞检测,即,确定碰撞检测的时机,而不是渲染的每帧电子地图都进行碰撞检测。57.具体的,cpu可以检测屏幕当前显示的电子地图的状态变化,判断待显示的电子地图中的地图要素与当前显示的电子地图中的地图要素是否相同,如果检测到的状态变化表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同,按以下两种判断条件,确认是否执行碰撞检测:58.条件1,检测到待显示的电子地图中的地图要素稳定,即待显示的电子地图本身不再有变化,则确定满足执行碰撞检测的条件,即可执行碰撞检测。59.条件2,通过检测变化时长,来确定是否触发碰撞检测:每当变化时长达到预设的检测时长但待显示的电子地图中的地图要素不稳定时(比如,当前次的变化状态持续到下一次的变化状态的时间间隔达到预设的时间间隔阈值),执行一次碰撞检测;若待显示的电子地图中地图要素不稳定,则返回检测变化时长的步骤,直到待显示的电子地图中的地图要素稳定时,说明地图要素从变化到无变化,因此,在将待显示的电子地图显示在屏幕时,执行碰撞检测。60.如前所述电子地图中的地图要素发生变化,通常是用户针对屏幕中当前显示的电子地图做了相应的操作,而用户操作一般持续时间并不长,因此,为了保证用户在屏幕上看到的电子地图中不要有冲突问题,所以,条件1的优先级高于条件2,即,一旦用户不再针对屏幕进行操作,则针对当前要渲染的电子地图必须执行碰撞检测;如果用户针对电子地图的操作时间较长,比如超过所述预设的时间间隔阈值,为了保证在中间过程中渲染的电子地图不要出现冲突问题,在过程中需要每隔预设的时间间隔阈值执行一次碰撞检测步骤。61.其中,碰撞检测的执行过程可以包括:基于预先设置的配置表,从待显示的电子地图的渲染数据中,读取不包括poi的预设类型的地图要素的深度数据,然后获取待显示的电子地图中的poi的深度数据,再将两者的深度数据进行比较,进而确定哪个或哪些poi需要显示在电子地图中,哪个或哪些poi不用显示。62.示例性的,结合图2所示,图2为本技术实施例提供的一种地图要素的碰撞检测方法的流程示意图,图2示出了电子地图的三维渲染场景,包括地图要素、poi的更新、碰撞检测的触发、碰撞检测的执行以及三维地图渲染显示。具体的,用户使用客户端(如,电子地图客户端)进行交互时,可以通过多线程(至少包括渲染线程和逻辑线程;逻辑线程是在cpu上运行,渲染线程是在gpu上运行)同步、交互的方式实现基于地图渲染的地图要素的碰撞检测:在逻辑线程上,根据检测到当前场景(这里指三维渲染场景),首先基于预先设置的配置表中记载的需要做碰撞检测的地图要素类型,确定需要当前场景中需要碰撞的建筑物(这里指距离摄像机最近的与poi存在遮挡碰撞的待渲染建筑物),在渲染管线中标记出该建筑物,并将其放入渲染管线,更新建筑物的渲染信息。63.在渲染线程上,根据更新后的渲染信息(或渲染数据),渲染建筑物,将深度转换成rgb颜色,然后基于是否接收到cpu发送的读取深度数据的请求,来确定是否需要向cpu发送读取深度数据的指令,如果未接收到读取深度数据的请求,则不发送读取深度数据的指令;如果接收到读取深度数据的请求,则发送读取深度数据的指令,将gpu中的rgb颜色数据给到内存中,cpu更新poi,在poi更新过程中,读取rgb颜色数据,进而获取预设类型的地图要素的深度数据。其中,cpu是否发送的读取深度数据的请求,是基于判断是否执行碰撞检测确定的,即如果cpu确定执行碰撞检测,则向gpu发送读取深度数据的指令,gpu收到该指令后,将深度数据给到内存,使得cpu可以从渲染数据中读取预设类型的地图要素的深度数据,比如,该建筑物的深度数据。64.此外,在poi更新的时候通过调用预定义接口获取poi所在像素的位置,基于该位置从读取的rgb颜色数据中查找到poi所在像素的rgb颜色数据,并将该rgb颜色数据转换成相应的深度数据,然后基于获取的poi的坐标,结合摄像机的参数,计算得到更新后的poi的深度数据(这里指待显示的电子地图中的poi的深度数据),然后将两个深度数据进行比较(即比较poi和建筑物哪一个离摄像机更近),判断poi是否被遮挡,如果建筑物的深度数据大于poi的深度数据,说明poi在建筑物前面,没有被遮挡,需要进行后续的碰撞处理;如果建筑物的深度数据小于poi的深度数据,说明poi在建筑物后面,如果建筑物的深度数据等于poi的深度数据,poi在建筑物内部,这两种情况均认为poi被遮挡,在地图上不显示该poi。65.示例性的,参见图3所示,图3为本技术实施例提供的另一种应用场景示意图。用户在客户端中地图操作界面(比如,客户端的首页界面31)通过触发操作(比如,输入、点击、滑动、拖拽、旋转、缩放等操作)来获取某地区有价值的地图信息:用户通过在客户端上进行第一触发操作(当用户打开首页界面31时,当前首页界面31展示是用户所处位置的电子地图(或地图),该首页界面还可以显示用于界面切换的第一功能键区域311,包含“首页”、“附近”、“我的”等等功能键,用户可以点击任意功能键切换到相应功能的界面),比如在预定输入框312,输入某个目的地名称(比如目的地1),通过点击查询按钮进行位置以及周边环境的地图查询(参见图3中(a)所示),客户端基于该第一触发操作进行地图渲染处理,在屏幕中显示与该第一触发操作对应的电子地图1(或地图1)(参见图3中(b)所示,该电子地图之上还展示有该目的地的描述信息以及第二功能键区域321,包括“周边”、“导航”、“路线”等等功能键,用户可以点击功能键,为用户提供相应的功能服务);如果用户想查看该电子地图中某一区域或某一位置的地图,可以继续在电子地图上进行第二触发操作,比如滑动或缩放操作,以滑动操作为例(参见图3中(c)所示),地图服务端会将相应的地图数据发送至客户端,由客户端在设备屏幕上地图显示区域32中渲染显示与该第二输入操作对应的电子地图(比如,至少包括与场景的摄像头最近的建筑物):电子地图2(或地图2)(参见图3中(d)所示)。66.其中,客户端运行的过程中,地图服务端基于客户端的触发操作,利用多线程的技术去处理业务逻辑和渲染;比如,渲染线程是在显示芯片(比如,gpu)上运行,用于实现地图渲染,逻辑线程是在逻辑处理单元(比如,cpu)上运行,用于实现是否执行碰撞检测、是否更新poi、是否通知渲染线程发送深度数据读取指令、是否读取深度数据、是否确定渲染地图要素、poi等业务处理。67.具体的,当用户的第二触发操作是通过拖拽、旋转或缩放操作实现想要查看的电子地图,这里的电子地图可以为三维渲染场景,即用户在屏幕上看到的就是三维场景的电子地图,当用户对该电子地图做了操作,用户看到的依然是三维场景的电子地图,只不过看到的电子地图中的内容有所不同。其中,在拖拽或者旋转的过程中,电子地图(处于变化状态,即电子地图中的摄像机处于移动状态,或者,在缩放的过程中,电子地图处于变化状态,即电子地图中的比例尺处于变化状态;因此,为了减少cpu、gpu的性能消耗,无需每帧电子地图在渲染线程中渲染时均在逻辑线程执行碰撞检测、poi更新以及深度数据的逻辑处理,来判断是否渲染地图要素以及poi,可以基于屏幕当前显示的电子地图的状态变化,比如,当所述状态变化表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同且待显示的电子地图中的地图要素稳定时,确定执行碰撞检测,进而得到需要在待显示的电子地图中显示的poi并在电子地图中显示渲染后的地图要素以及该poi。68.如果确定执行碰撞检测,则可以立即触发poi的更新,并由逻辑线程向渲染线程发送用于表示允许发送建筑物的更新后的深度数据的通知,渲染线程向逻辑线程发送深度数据的读取指令,逻辑线程从存储在gpu中读取的深度数据的关联数据(这里指由深度数据转换成的rgb数据),即gpu将关联数据给到cpu的内存,然后cpu通过获取的更新后的poi的信息(比如,更新的poi的三维坐标、更新的poi的所在像素的位置等)进行poi遮挡判断,进而判断是否渲染显示poi。69.当用户停止拖拽、旋转或缩放操作,在电子地图中的地图要素初次稳定时时,强制更新poi,并在poi更新过程中,逻辑线程读取建筑物渲染后的深度数据,基于更新的poi的信息进行poi遮挡判断,进而判断是否渲染显示该poi。在电子地图中的地图要素为非初次稳定时,通过检测变化时长和/或场景的比例尺状态变化或者摄像机状态变化是否满足预设条件,来判断是否进行碰撞检测,进而确定是否渲染显示该poi。70.其中,在电子地图的地图要素稳定时,为了保证场景和深度数据的一致,实现碰撞效果的稳定性,可以在确定触发碰检测操作时,更新poi,并通过控制触发poi更新的时机和读取更新后的深度数据的时机,来实现渲染线程在渲染建筑物后,在逻辑线程执行poi更新的过程中,逻辑线程能够及时读取渲染线程中建筑物的深度数据并判断更新后的poi是否被建筑物遮挡,如果没有被遮挡,则进行碰撞处理,在地图中渲染该poi,即显示该poi;如果被遮挡,则无需在地图中渲染该poi,即不显示该poi。71.因此,通过上述确定需要与poi碰撞的地图要素,然后在地图上渲染该地图要素,并根据当前场景确定是否更新poi,而不是每帧电子地图的渲染过程都进行poi的更新,减少了性能消耗;如果确定更新poi,则在当前显示的电子地图的地图要素处于稳定时,通过控制触发poi更新的时机和读取该地图要素的深度数据的时机,用以对深度数据和当前场景进行处理,进而确定是否在电子地图上渲染该poi,保证了在poi更新的时候,深度数据与当前场景保持一致,使得碰撞效果稳定,进而保证地图渲染结果的准确性,提升用户的服务体验。72.需要说明的是,上述通过检测屏幕当前显示的电子地图的状态变化,来确定是否需要进行碰撞检测,如果确定执行碰撞检测,将从待显示的电子地图的渲染数据中读取的不包括poi的预设类型的地图要素的深度数据,与待显示的电子地图中的poi的深度数据进行比较,得到需要在待显示的电子地图中显示的poi的执行步骤,仅是示例说明,也可以只通过拆分出更多的平台以及更多的模块进行处理,本技术实施例对此不作具体限定。其中,针对获取的用户的信息(比如定位信息)、目标对象、渲染信息、位置、坐标等都是经过用户授权的。73.下面以具体地实施例对本技术的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的实施例进行描述。74.示例性地,图4为本技术实施例提供的另一种地图要素的碰撞检测方法的流程示意图。本实施例可以应用于任意能够实现地图要素的碰撞检测的装置,例如用户设备(或终端)等,下述以地图要素为建筑物为例,对地图要素的碰撞检测方法进行详细说明。如图4所示,所述地图要素的碰撞检测方法可以包括:75.s401、检测屏幕当前显示的电子地图的状态变化,当所述状态变化表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同且待显示的电子地图中的地图要素稳定时,至少在将所述待显示的电子地图显示在所述屏幕时,执行碰撞检测。76.其中,稳定指的是待显示的电子地图本身不再有变化,因为拖拽、缩放、旋转都有一个过程,而电子地图1秒会渲染几十帧,最终显示待显示的电子地图之前显示的电子地图的差别不大时,则认为要素稳定了。稳定的判断是通过摄像机的参数判断的,角度变化很小或者距离变化不大时。由于电子地图1秒会渲染几十帧,本技术中当前显示的电子地图是指在执行碰撞检测之前,屏幕中显示的电子地图,并非特指某一帧电子地图。77.具体的,该过程是由cpu执行的:通过检测屏幕当前显示的电子地图的状态变化,来确定是否执行碰撞检测,无需每帧渲染过程都进行碰撞检测,能够降低用户设备资源消耗。如果待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同且待显示的电子地图中的地图要素稳定时,说明满足了执行碰撞检测的条件,因此,至少在将所述待显示的电子地图显示在所述屏幕时,执行碰撞检测。78.s402、从待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据,所述预设类型不包括兴趣点。79.具体的,本技术实施例应用在3d场景,通过预先会有一张配置表,记载需要做碰撞检测的地图要素类型,如:建筑物、树等,可以从电子地图的地图要素中可以确定预设类型的地图要素(这里指配置表中记载的地图要素类型对应的地图要素)以及poi。80.其中,这里的poi可以为一个或多个,需要每个poi均与该预设类型的地图要素进行遮挡判断。这里的碰撞,以预设类型的地图要素为建筑物为例,比如poi在建筑物内,或者,poi在建筑物外。由于频繁的读取深度数据去更新场景,能够影响gpu的性能,因此,为了减少gpu的性能消耗,无需每帧都读取深度数据来更新场景,可以基于屏幕当前显示的电子地图的状态变化,通过与待显示的电子地图的场景进行分析,确定是否执行碰撞检测,进而实现场景更新。81.可选的,首先要确定待碰撞检测的地图要素:82.根据用户通过用户设备在地图操作界面上的触发操作,对需要碰撞的对象(即地图要素)进行标记,并将所述需要碰撞的对象作为待碰撞检测的地图要素;其中,所述待碰撞检测的地图要素为距离所述地图中摄像机最近的待渲染对象;83.根据标记,更新所述待碰撞检测的地图要素的渲染信息。84.具体地,结合图1至图3所示,用户通过安装有客户端的用户设备,在客户端提供的地图操作界面上进行触发操作,比如,对当前电子地图的拖拽、旋转或缩放操作,基于该拖拽、旋转或缩放操作,逻辑线程可以基于当前场景中的摄像机的参数,确定距离摄像机最近的需要碰撞的对象,如建筑物(该建筑物为待渲染建筑物),并在渲染管线中标记出需要碰撞的建筑物,并将其提交到渲染管线中。由于地图有很多图层,但很多图层不需要产生深度信息(或深度数据),所以没有标记的对象是不需要更新深度数据和渲染的,能够减少用户设备性能消耗;并且建筑物数据也包括好几种,需要所有类型的建筑物都收集起来才行,这样只需根据标记即可知道该对象是需要更新的,进而更新该建筑物的渲染信息。更新建筑物的渲染信息后,更新后的渲染信息用于为渲染线程如何渲染这些建筑物提供数据。85.可选的,在地图中渲染所述待碰撞检测的地图要素,包括:86.获取所述待碰撞检测的地图要素对应的更新后的渲染信息,将所述更新后的渲染信息中的所述深度数据转换为rgb数据,并存储在显示芯片中。87.本技术实施例中,首先在逻辑线程中,基于当前电子地图(或当前场景),确定距离摄像机最近的需要碰撞的建筑物作为目标对象,然后将该建筑物放入渲染管线(称为渲染流水线或像素流水线或像素管线,是显示芯片内部处理图形信号相互独立的的并行处理单元。渲染管线用于提高显卡的工作能力和效率)中,更新建筑物渲染信息(或渲染数据);并在渲染线程中渲染该建筑物,将更新后的渲染信息中的深度数据(这里指该建筑物在渲染过程中,更新后的深度数据)转换成rgb颜色数据。其中,深度数据(这里指深度值)是单精度浮点数,而rgb是三个0-255的整数,转换之后将数据存到纹理中。88.由于渲染操作是在渲染线程中执行(这里指由gpu处理),是否显示poi是在逻辑线程中确定(这里指由cpu处理),因此,需要将渲染的建筑物的深度数据放到内存上由cpu进行处理,通过跨线程数据同步处理,实现深度数据的管理合理性。89.可选的,图形处理器gpu基于待显示的电子地图的地图数据,生成所述地图数据中包括的地图要素的渲染数据;90.所述从待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据,具体为:91.中央处理器cpu从所述图形处理器gpu生成的待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据。92.其中,所述渲染数据由gpu生成,cpu从所述gpu中读取所述深度数据。93.可选的,基于待显示的电子地图的地图数据,生成所述地图数据中包括的地图要素的渲染数据,所述渲染数据包括:深度数据,所述深度数据与像素点对应。94.具体的,该过程是由gpu执行的:深度数据是预设类型的地图要素在gpu渲染过程中生成的。这里的深度数据为在更新地图要素的渲染信息的过程中,更新后的深度数据。如果确定更新poi,通过控制poi的更新以及地图要素的深度数据的读取时机,能够使得深度数据和场景一致,实现poi与地图要素精确地进行碰撞。上述地图要素的碰撞检测方法的步骤实现了在保证性能的同时,保证碰撞效果的准确性,进而保证地图渲染结果的准确性。95.可选的,所述深度数据是逐像素点。96.s403、确定待显示的电子地图中的兴趣点的深度数据。97.本技术实施例中,确定执行碰撞检测,进而确定需要在待显示的电子地图中显示的poi。具体的,根据从服务器最新下载的地图数据(这里指poi在世界坐标系下的坐标),通过当前显示的电子地图中摄像机的参数,计算得到poi的深度数据,即待显示的电子地图中的poi的深度数据。98.s404、将所述预设类型的地图要素的深度数据与所述兴趣点的深度数据进行比较,得到需要在待显示的电子地图中显示的兴趣点。99.本技术实施例中,基于poi所在像素的位置以及深度数据,并结合更新后的预设类型的地图要素的深度数据,判断poi是否被预设类型的地图要素遮挡,如果被遮挡,则该poi不显示,如果没有被遮挡,则进行碰撞处理,最终渲染并显示对象和poi。因此,通过读取预设类型的地图要素深度数据的方式,使用poi和预设类型的地图要素的深度比对,即相对摄像机的位置比对,判断poi是否被预设类型的地图要素遮挡较为直观、准确,碰撞处理具有准确性,使得渲染结果具有准确性。100.因此,本技术实施例提供的地图要素的碰撞检测方法,可以通过检测屏幕当前显示的电子地图的状态变化,当所述状态变化表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同且待显示的电子地图中的地图要素稳定时,至少在将所述待显示的电子地图显示在所述屏幕时,执行碰撞检测;进一步的,碰撞检测包括:从待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据,所述预设类型不包括兴趣点;确定待显示的电子地图中的兴趣点的深度数据;将所述预设类型的地图要素的深度数据与所述兴趣点的深度数据进行比较,得到需要在待显示的电子地图中显示的兴趣点。本技术可以通过检测屏幕当前显示的电子地图的状态变化,来确定是否需要进行碰撞检测,而不是在电子地图中每帧地图的渲染过程都进行碰撞检测来实现poi的更新,减少了性能消耗;如果确定执行碰撞检测,首先从待显示的电子地图的渲染数据中,读取不包括poi的预设类型的地图要素的深度数据,同时确定待显示的电子地图中的poi的深度数据,然后将两者的深度数据进行比较,确定是否在地图上渲染poi,使得碰撞检测更为直观、有效,进而保证地图渲染结果的准确性,提升用户的服务体验。101.可选的,在检测到待显示的电子地图中的地图要素和当前显示的电子地图中的地图要素不同时,所述方法进一步包括:102.检测变化时长,每当所述变化时长达到预设的检测时长但所述待显示的电子地图中的地图要素不稳定时,执行一次所述碰撞检测,若所述待显示的电子地图中地图要素不稳定,则返回检测变化时长的步骤,直到所述待显示的电子地图中的地图要素稳定时,在将所述待显示的电子地图显示在所述屏幕时,执行碰撞检测。103.其中,变化时长,是从检测到待显示的电子地图中的地图要素与当前显示的电子地图中的地图要素不同时开始计时,每计时比如200ms但地图要素还不稳定,则执行碰撞检测,然后再计时200ms。104.具体的,若检测到待显示的电子地图中的地图要素和当前显示的电子地图中的地图要素不同,且检测到的地图要素不同的时间间隔(即变化时长)达到预设的检测时长,比如大于或等于预设间隔阈值,此时待显示的电子地图中的地图要素不稳定时,执行一次所述碰撞检测;由于待显示的电子地图中地图要素不稳定,则返回检测变化时长的步骤,直到待显示的电子地图中的地图要素稳定时,继续执行碰撞检测,即在将所述待显示的电子地图显示在所述屏幕时,执行碰撞检测。105.比如,检测到待显示的电子地图中的地图要素和当前显示的电子地图中的地图要素不同时,在200ms内,待显示的电子地图中的地图要素稳定了,则执行碰撞检测,否则,每200ms执行一次碰撞检测,直到待显示的电子地图中的地图要素稳定时,执行最后一次碰撞检测,以确保稳定显示在屏幕中的电子地图不存储遮挡的问题。106.可选的,检测屏幕当前显示的电子地图的状态变化,具体包括:107.检测屏幕当前显示的电子地图的比例尺状态变化或者摄像机状态变化。108.本技术实施例中,通过缩放操作,电子地图的比例尺状态发生变化;通过拖拽或旋转操作,电子地图中摄像机状态发生变化。因此,基于屏幕当前显示的电子地图的比例尺状态变化或者摄像机状态变化,可以确定是否执行碰撞检测,无需电子地图中渲染地图的每帧都进行碰撞检测,降低了用户设备资源消耗。109.可选的,所述摄像机状态变化包括方向状态变化和位置状态变化;110.若待显示的电子地图的摄像机的朝向角与所述当前显示的电子地图的摄像机的朝向角之间的差值,大于预设的角度阈值,则表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同,111.或者,若待显示的电子地图的摄像机的位置到所述当前显示的电子地图的摄像机的位置的距离大于预设的距离阈值,则表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同。112.其中,这里的距离是指屏幕的像素距离。比如方向状态变化,如朝向角变化。113.具体的,如果待显示的电子地图的摄像机的朝向角与当前显示的电子地图的摄像机的朝向角之间的差值,大于预设的角度阈值,则说明摄像机朝向改变达到一定的值即电子地图中摄像机的参数在两次场景的变化数据满足预设变化条件,那么执行碰撞检测。如果待显示的电子地图的摄像机的位置到所述当前显示的电子地图的摄像机的位置的距离大于预设的距离阈值,则说明摄像机移动达到一定的值即电子地图中摄像机的参数在两次场景的变化数据满足预设变化条件,那么执行碰撞检测。114.可选的,地图要素的碰撞检测方法,还可以确定是否更新所述兴趣点,所述方法进一步包括:115.获取上一次渲染电子地图的场景中触发更新所述兴趣点时电子地图的状态、上一次渲染电子地图的场景中触发更新所述兴趣点的时刻以及当前时刻;116.根据当前电子地图的状态、上一次触发更新所述兴趣点时电子地图的状态、上一次触发更新所述兴趣点的时刻与当前时刻的时间间隔,确定是否更新所述兴趣点。117.本技术实施例中,基于当前电子地图的状态,通过与上一次渲染电子地图的场景进行分析,确定是否更新poi:上一次渲染电子地图的场景中可以包括上一次触发更新该poi点时电子地图的状态、上一次触发更新该poi点的时刻等,基于当前电子地图的状态,结合上一次触发更新该poi点时电子地图的状态和/或上一次触发更新该poi点的时刻与当前时刻的时间间隔,判断是否更新兴趣点。比如,时间间隔是否达到预设间隔阈值、电子地图中摄像机的参数在两次场景的变化数据是否满足预设变化条件等自由组合策略,确定是否更新poi。如果确定更新poi并由渲染线程向逻辑线程发送读取深度数据的指令,逻辑线程读取深度数据并结合更新后的poi的信息,确定是否渲染该poi。118.通过不同角度与当前场景进行综合分析,来判断是否更新poi,能够保证是否更新poi的有效性,进而准确地渲染,如果确定更新poi,通过读取建筑物的深度数据,将建筑物的深度数据与poi的深度值比对,进而确定是否渲染显示poi,不是每帧都使用渲染数据中的深度数据,减少了由于频繁的拿深度数据去更新场景带来的gpu性能消耗。119.可选的,根据当前电子地图的状态、上一次触发更新所述兴趣点时电子地图的状态、上一次触发更新所述兴趣点的时刻与当前时刻的时间间隔,确定是否更新所述兴趣点,可以通过以下至少两种方式实现:120.方式1、基于当前电子地图的状态和上一次触发更新所述兴趣点时电子地图的状态(比如,当前电子地图的地图要素不稳定且上一次触发更新所述兴趣点时电子地图的地图要素不稳定、当前电子地图的地图要素不稳定且上一次触发更新所述兴趣点时电子地图的地图要素稳定、当前电子地图的地图要素稳定且上一次触发更新所述兴趣点时电子地图的地图要素稳定、当前电子地图的地图要素稳定且上一次触发更新所述兴趣点时电子地图的地图要素不稳定),确定使用上一次触发更新所述兴趣点的时刻与当前时刻的时间间隔和图画面中摄像机的参数在两次场景的变化数据的组合策略来判断是否更新poi:121.若当前电子地图的地图要素不稳定,且上一次触发更新所述兴趣点时电子地图的地图要素不稳定,则将所述时间间隔与预设间隔阈值进行比较,若所述时间间隔大于或等于预设间隔阈值,则确定更新所述兴趣点;122.若电子地图的地图要素不稳定且上一次触发更新所述兴趣点时电子地图的地图要素稳定,或者,若当前电子地图的地图要素稳定且上一次触发更新所述兴趣点时电子地图的地图要素稳定,则若电子地图中摄像机的参数在两次场景的变化数据满足预设变化条件,或者,若电子地图中摄像机的参数在两次场景的变化数据不满足预设变化条件且所述时间间隔大于或等于预设间隔阈值,则确定执行碰撞检测(确定更新所述兴趣点);123.若当前电子地图的地图要素稳定,且上一次触发更新所述兴趣点时电子地图的地图要素不稳定,则确定更新所述兴趣点(确定更新所述兴趣点)。124.具体的,判断是否更新poi或是否需要发送读取深度数据命令。判断的依据有:125.a:时间间隔。若两次发送读取命令之间的时间间隔(或者两次触发poi更新的时间间隔)小于预设间隔阈值,比如400毫秒,那么不更新poi以及不发送读取深度数据命令,进而不更新场景;126.b:当前场景是否要进入稳定状态,如果是,那么判断依据c是否成立,若成立,则不管间隔是否达到400毫秒都更新poi以及发送读取深度数据命令,进而更新场景。如果不是,则依据步骤a判断是否更新。127.其中,如果当前场景初次进入稳定状态,即上一次场景的状态为变化状态(这里指电子地图的地图要素不稳定),当前场景的状态为静止状态,则为了保证场景与深度数据的一致,确定更新poi的时机和读取深度数据的时机,来更新场景。128.c:场景的摄像机是否移动。记录两次场景(这里指当前场景和上一次渲染电子地图的场景)进入静止状态发送读取命令时摄像机的参数,若摄像机移动、朝向改变没有达到一定的值即电子地图中摄像机的参数在两次场景的变化数据不满足预设变化条件,那么不更新,否则更新。129.示例性的,首先是使用时间间隔,避免每帧都发送读取深度数据的命令;其次在发送读取深度数据命令的时候,会记录当前摄像机的状态,在下一次发送命令的时候会将那时的摄像机的状态和记录的进行比较,如果摄像机的状态(位置和朝向)没有发生太大变化(移动距离不超过2个像素、朝向改变不超过1度、级别缩放不超过0.1),那么就不发送读取深度数据的命令,不更新poi。130.因此,该方式1基于当前电子地图的状态结合上一次触发更新所述兴趣点时电子地图的状态,两种状态不同的具体场景对应不同的处理逻辑或者处理策略,这种有针对性或者有区分的处理方式,更加细致化,能够保证是否更新兴趣点的准确性,进而准确地确定是否渲染该兴趣点,来保证渲染结果的准确性。131.方式2、基于当前电子地图的状态与上一次触发更新所述兴趣点时电子地图的状态是否相同,确定用于判断是否更新poi的策略,进而确定是否更新poi、读取深度数据。132.若当前电子地图的状态与上一次触发更新所述兴趣点时电子地图的状态不同,则确定更新所述兴趣点;133.若当前电子地图的状态与上一次触发更新所述兴趣点时电子地图的状态相同,且所述时间间隔大于或等于预设间隔阈值和/或所述电子地图中摄像机的参数在两次场景的变化数据满足预设变化条件,则确定更新所述兴趣点。134.具体的,通过以下三种实现方式对方式2进行详细说明:135.方式21、如果两次状态不同,直接确定更新poi;如果两次状态相同,判断时间间隔是否达到预设阈值,如果达到,则更新poi,如果没有达到,则不更新;136.方式22、如果两次状态不同,直接确定更新poi;如果两次状态相同,判断两次场景中摄像机的参数变化是否达到预设变化条件,如果达到,则更新,如果没有达到,则不更新;137.方式23、如果两次状态不同,直接确定更新poi;如果两次状态相同,判断两次场景中摄像机的参数变化是否达到预设变化条件以及判断时间间隔是否达到预设阈值,如果均达到,则更新poi,如果任何一项未达到,则不更新。138.因此,该方式2的上述三种实现方式,是基于两次状态是否相同,来确定相应的处理逻辑,实现逻辑简单,并且与现有技术中没有针对地图要素稳定下场景细化分析的逻辑处理相比,提高了渲染的准确性。139.可选的,在从待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据之前,所述方法进一步包括:确定触发所述兴趣点更新的时机和读取深度数据的时机。140.其中,确定触发所述兴趣点更新的时机和读取深度数据的时机,包括:141.在当前电子地图处于地图要素稳定之后统计的静止帧数达到n帧时,触发所述兴趣点的更新,并记录当前触发更新所述兴趣点的时刻;142.在第n+1帧,通过显示芯片将所述rgb数据发送至逻辑处理单元,并通过所述逻辑处理单元读取所述rgb数据,将所述rgb数据转换为深度数据,用以确定在所述地图中是否渲染所述兴趣点。143.其中,记录当前触发更新所述兴趣点的时刻用于下一次触发的时刻进行时间间隔的计算,进而作为一个是否更新poi的判断依据。144.具体的,当前电子地图处于变化状态且上一次触发更新所述兴趣点时电子地图的状态为稳定状态时(这里指画面初次进入稳定状态时)强制更新深度数据(这里更新深度数据是指将深度数据从gpu传到内存中),或者,当前电子地图处于稳定状态且上一次触发更新所述兴趣点时电子地图的状态为稳定状态,并且确定更新场景时,进入稳定状态后由于读取深度数据是在渲染线程中进行,这也就意味着深度数据的更新要在一帧之后,那么poi的更新时间(即触发所述兴趣点更新的时机)就放到进入稳定状态一帧之后,通过计算稳定之后经过的帧数来实现这个过程:145.在进入稳定状态之后会计算稳定了多少帧,然后在稳定了n帧(比如,3帧;由于poi收集数据间隔是4帧)的时候触发poi的更新,比如逻辑线程在第三帧触发poi更新,去向渲染线程申请深度数据,在第四帧读取深度数据,读取深度数据,然后基于更新后的poi的信息和读取的深度数据进行逻辑处理,这样就能确保此时深度数据是和场景保持一致的,因此poi的碰撞也是正确的。比如:当业务检测到电子地图有三帧相同的画面时,发送更新深度数据的命令,然后在第四帧的时候读取数据,这第三帧和第四帧的处理是用来解决跨线程数据同步问题。146.由于渲染操作是在渲染线程中执行(这里指由gpu处理),是否显示poi是在逻辑线程中确定(这里指由cpu处理),因此,需要将渲染的建筑物的深度数据放到cpu上进行处理。当业务检测到电子地图有n帧相同的画面时,在第n帧的时候申请读取深度数据,即由逻辑线程告诉渲染线程可以发送读取深度数据命令了,在第n+1帧的时候查询并处理,解决了数据同步的问题,因此,通过跨线程数据同步处理,实现深度数据的管理合理性;通过控制poi的更新以及深度数据的读取时机,实现poi与对象精确地进行碰撞。147.此外,在某些情况下,例如横竖屏切换、poi不使用建筑物碰撞等情况下,某些建筑物的深度数据相应的相关数据需要释放,为了在释放的时候保证其他线程能正确运行,渲染线程在渲染的时候,将深度数据转换为rgb颜色数据,并存储在显存中,在相关数据释放时,逻辑处理线程采用读取相应场景下的rgb颜色数据的方式,将rgb颜色数据再转换成深度数据,并对深度数据进行逻辑处理,两个线程的运行互不影响。148.可选的,确定是否渲染poi,包括:149.获取更新后的兴趣点的深度数据和更新后的兴趣点在地图中像素的位置;150.根据更新后的兴趣点的深度数据、更新后的兴趣点在地图中像素的位置和所述深度数据,确定在所述地图中是否渲染所述兴趣点。151.其中,更新后的兴趣点的深度数据的获取可以是根据获取的更新后的兴趣点在世界坐标系下的坐标,通过当前电子地图中摄像机的参数(比如,位置、朝向等),计算得到更新后的兴趣点的深度数据。152.具体的,基于更新后的poi所在像素的位置以及更新后的poi的深度数据,并结合建筑物更新后的深度数据,判断poi是否被该建筑物遮挡,如果被遮挡,则该poi不显示,如果没有被遮挡,则进行碰撞处理,最终渲染并显示该建筑物和poi。153.通过读取建筑物的深度数据以及更新poi的方式,使用poi和建筑物的深度值比对,即相对于摄像机的位置比对,判断poi是否被建筑物遮挡较为直观、准确,碰撞处理具有准确性,使得渲染结果具有准确性。154.可选的,根据更新后的兴趣点的深度数据、更新后的兴趣点在地图中像素的位置和所述深度数据,确定在所述地图中是否渲染所述兴趣点,包括:155.根据更新后的兴趣点在地图中像素的位置,从所述深度数据中获取所述兴趣点所在像素的深度数据;所述兴趣点所在像素的深度数据用于表示所述目标对象中与所述兴趣点存在碰撞部分的深度数据;156.将所述兴趣点所在像素的深度数据和所述兴趣点的深度数据进行比较,确定所述目标对象与所述兴趣点是否存在遮挡;157.若不存在遮挡,则通过对所述目标对象与所述兴趣点进行碰撞处理,在所述地图中渲染所述兴趣点;若存在遮挡,则在所述地图中不渲染所述兴趣点。158.具体的,首先gpu将rgb颜色数据放到内存上,cpu从内存中读取rgb颜色数据,将其转换成深度值,该过程可以理解为更新深度数据。通过poi所在像素的位置,从读取的深度数据中查找与该位置处对应的深度数据,即为与poi存在碰撞的建筑物的深度值,将该深度值与poi的深度值比较,能够直观、准确地判断出poi与建筑物在当前场景相对于摄像机的位置关系。159.因此,本技术通过将深度值转成rgb颜色值来获取深度数据,并通过读取深度图数据的方式,实现了多线程下poi建筑物碰撞的效果;利用摄像机的移动,降低读取深度图数据的频率,提高性能,并通过控制poi的更新以及深度数据的读取时机,让其能够和场景精确地进行碰撞,进而使得渲染结果较为准确,提升用户的服务体验。160.对应于上述地图要素的碰撞检测方法,本技术实施例提供一种地图要素的碰撞检测装置,图5为本技术实施例提供的一种地图要素的碰撞检测装置的结构示意图,所述装置包括:161.第一检测模块501,用于检测屏幕当前显示的电子地图的状态变化;162.第二检测模块502,用于在所述状态变化表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同且待显示的电子地图中的地图要素稳定时,至少在将所述待显示的电子地图显示在所述屏幕时,触发碰撞检测模块;163.所述碰撞检测模块503,包括:164.深度数据读取单元,用于从待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据,所述预设类型不包括兴趣点;165.深度数据计算单元,用于确定待显示的电子地图中的兴趣点的深度数据;166.深度数据比较单元,用于将所述预设类型的地图要素的深度数据与所述兴趣点的深度数据进行比较,得到需要在待显示的电子地图中显示的兴趣点。167.本技术实施例提供的地图要素的碰撞检测装置,可用于执行上述图1至图4所示实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。168.可选的,所述装置进一步包括:第三检测模块;169.所述第三检测模块,用于在检测到待显示的电子地图中的地图要素和当前显示的电子地图中的地图要素不同时,检测变化时长,每当所述变化时长达到预设的检测时长但所述待显示的电子地图中的地图要素不稳定时,执行一次所述碰撞检测,若所述待显示的电子地图中地图要素不稳定,则返回检测变化时长的步骤,直到所述待显示的电子地图中的地图要素稳定时,在将所述待显示的电子地图显示在所述屏幕时,触发所述碰撞检测模块。170.可选的,第一检测模块501,具体用于:171.检测屏幕当前显示的电子地图的比例尺状态变化或者摄像机状态变化。172.可选的,所述比例尺状态变化是从目标比例尺变化为与目标比例尺不同的比例尺,则表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同,所述目标比例尺是所述当前显示的电子地图的比例尺。173.可选的,所述摄像机状态变化包括方向状态变化和位置状态变化;174.若待显示的电子地图的摄像机的朝向角与所述当前显示的电子地图的摄像机的朝向角之间的差值,大于预设的角度阈值,则表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同,175.或者,若待显示的电子地图的摄像机的位置到所述当前显示的电子地图的摄像机的位置的距离大于预设的距离阈值,则表示待显示的电子地图中的地图要素与所述当前显示的电子地图中的地图要素不同。176.可选的,该地图要素的碰撞检测装置,还包括:生成模块,用于:177.基于待显示的电子地图的地图数据,生成所述地图数据中包括的地图要素的渲染数据,所述渲染数据包括:深度数据,所述深度数据与像素点对应。178.可选的,图形处理器gpu,用于基于待显示的电子地图的地图数据,生成所述地图数据中包括的地图要素的渲染数据;中央处理器cpu,用于从所述图形处理器gpu生成的待显示的电子地图的渲染数据中,读取预设类型的地图要素的深度数据。179.图6为本技术实施例提供的一种电子设备的结构示意图。如图6所示,本实施例的电子设备可以包括:180.至少一个处理器601;以及181.与所述至少一个处理器通信连接的存储器602;182.其中,所述存储器602存储有可被所述至少一个处理器601执行的指令,所述指令被所述至少一个处理器601执行,以使所述电子设备执行如上述任一实施例所述的方法。183.可选的,存储器602既可以是独立的,也可以跟处理器601集成在一起。可选的,存储器602可以通过总线603跟处理器601实现连接。184.本实施例提供的电子设备的实现原理和技术效果可以参见前述各实施例,此处不再赘述。185.本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现前述任一实施例所述的方法。186.本技术实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任一实施例所述的方法。187.本技术的技术方案中,所涉及的用户、商家的各种信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。188.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。189.上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本技术各个实施例所述方法的部分步骤。190.应理解,上述处理器可以是中央处理单元(central processing unit,简称cpu),还可以是其它通用处理器、数字信号处理器(digital signal processor,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。191.上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。192.一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,简称asic)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。193.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。194.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。195.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。196.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部