CN113822978A - 电子地图渲染方法及装置 - Google Patents
电子地图渲染方法及装置 Download PDFInfo
- Publication number
- CN113822978A CN113822978A CN202111017410.3A CN202111017410A CN113822978A CN 113822978 A CN113822978 A CN 113822978A CN 202111017410 A CN202111017410 A CN 202111017410A CN 113822978 A CN113822978 A CN 113822978A
- Authority
- CN
- China
- Prior art keywords
- view
- sub
- views
- target
- map
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
Abstract
本公开的实施例提供了一种电子地图渲染方法及装置。所述方法包括:对待渲染视图进行拆分处理,得到所述待渲染视图对应的多个子视图;获取所述多个子视图对应的视图坐标信息;对所述多个子视图进行位图转换处理,生成所述多个子视图对应的位图图像;调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图。本公开的实施例可以实现Android View与地图渲染元素位置更新的绝对同步,提高了用户体验。
Description
技术领域
本公开的实施例涉及电子地图渲染技术领域,尤其涉及一种电子地图渲染方法及装置。
背景技术
在Android设备的地图场景中,地图元素的渲染与绘制是通过C/C++来调用OpenGL接口,通过Android提供的SurfaceView来实现的,SurfaceView是在子线程中实现绘制更新的,而在Android系统中,系统提供的View在UI线程中进行绘制,这就导致Android View与地图渲染元素两者之间必然存在线程同步的问题,具体到现象上,则表现为Android View与地图渲染元素的更新无法同步执行。
Android View与SurfaceView分别处于两个线程,为了使两者尽可能的缩小更新同步的时间差,最好的处理思路是将Android View的更新放到与SurfaceView的绘制更新最接近的时刻,具体时机在SurfaceView的SurfaceView#Renderer#onDrawFrame()接口之前/之后。地图元素的绘制是由渲染引擎具体执行的,渲染引擎通过回调通知SurfaceView有地图元素需要更新绘制,SurfaceView在SurfaceView#Renderer#onDrawFrame()中,会主动调用渲染引擎的render()方法,来通知渲染引擎“现在可以开始绘制新的一帧画面了”,此时渲染引擎已经有了新的地图状态(例如产生了位移),此刻就可以通过渲染引擎判断Android View的锚点是否发生了偏移,如果产生了移动,就将地理坐标点移动后所对应的新的屏幕坐标计算出来,然后修改Android View的位置,进而实现Android View与SurfaceView绘制的地图元素的“相对”同步更新。
上述方案中,Android View为Android系统提供的上层View,地图为由渲染引擎控制的SurfaceView,两者不在同一线程,地图移动时两者不同步,影响用户体验。
发明内容
本公开的实施例提供一种电子地图渲染方法及装置,用以实现Android View与地图渲染元素在更新上的绝对同步,提高用户体验。
根据本公开的实施例的第一方面,提供了一种电子地图渲染方法,包括:
对待渲染视图进行拆分处理,得到所述待渲染视图对应的多个子视图;
获取所述多个子视图对应的视图坐标信息;
对所述多个子视图进行位图转换处理,生成所述多个子视图对应的位图图像;
调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图。
可选地,所述获取所述多个子视图对应的视图坐标信息,包括:
获取预先定义的所述待渲染视图上的坐标原点;
基于所述坐标原点和所述多个子视图在所述待渲染视图上的位置,确定所述多个子视图在所述待渲染视图上的视图坐标信息。
可选地,所述调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图,包括:
将所述位图图像添加至所述地图渲染引擎;
调用所述地图渲染引擎根据所述视图坐标信息,在电子地图上对所述位图图像进行布局;
调用所述地图渲染引擎对布局后的电子地图进行渲染,生成所述目标电子地图。
可选地,在所述调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图之后,所述方法还包括:
建立并保存各所述位图图像的图像标识与各所述位图图像对应的子视图之间的对应关系;
在所述多个子视图中的目标子视图存在视图更新的情况下,获取所述目标子视图对应的更新子视图;
对所述更新子视图进行位图转换处理,生成所述更新子视图对应的目标位图图像;
获取所述目标位图图像对应的目标坐标信息;
调用所述地图渲染引擎在电子地图上根据所述目标坐标信息对所述目标位图图像进行渲染显示。
可选地,在所述调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图之后,所述方法还包括:
在接收到用户在所述目标电子地图上执行的点击事件之后,获取所述点击事件对应的地图元素;
获取所述多个子视图中与所述地图元素匹配的第一子视图;
反馈所述点击事件给所述第一子视图。
根据本公开的实施例的第二方面,提供了一种电子地图渲染装置,包括:
子视图获取模块,用于对待渲染视图进行拆分处理,得到所述待渲染视图对应的多个子视图;
视图坐标获取模块,用于获取所述多个子视图对应的视图坐标信息;
位图图像生成模块,用于对所述多个子视图进行位图转换处理,生成所述多个子视图对应的位图图像;
目标地图生成模块,用于调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图。
可选地,所述视图坐标获取模块包括:
坐标原点获取单元,用于获取预先定义的所述待渲染视图上的坐标原点;
视图坐标确定单元,用于基于所述坐标原点和所述多个子视图在所述待渲染视图上的位置,确定所述多个子视图在所述待渲染视图上的视图坐标信息。
可选地,所述目标地图生成模块包括:
位图图像添加单元,用于将所述位图图像添加至所述地图渲染引擎;
位图图像布局单元,用于调用所述地图渲染引擎根据所述视图坐标信息,在电子地图上对所述位图图像进行布局;
目标地图生成单元,用于调用所述地图渲染引擎对布局后的电子地图进行渲染,生成所述目标电子地图。
可选地,所述装置还包括:
对应关系建立模块,用于建立并保存各所述位图图像的图像标识与各所述位图图像对应的子视图之间的对应关系;
更新子视图获取模块,用于在所述多个子视图中的目标子视图存在视图更新的情况下,获取所述目标子视图对应的更新子视图;
目标位图生成模块,用于对所述更新子视图进行位图转换处理,生成所述更新子视图对应的目标位图图像;
目标坐标获取模块,用于获取所述目标位图图像对应的目标坐标信息;
目标位图渲染模块,用于调用所述地图渲染引擎在电子地图上根据所述目标坐标信息对所述目标位图图像进行渲染显示。
可选地,所述装置还包括:
地图元素获取模块,用于在接收到用户在所述目标电子地图上执行的点击事件之后,获取所述点击事件对应的地图元素;
第一子视图获取模块,用于获取所述多个子视图中与所述地图元素匹配的第一子视图;
点击事件反馈模块,用于反馈所述点击事件给所述第一子视图。
根据本公开的实施例的第三方面,提供了一种电子设备,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一项所述的电子地图渲染方法。
根据本公开的实施例的第三方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一项所述的电子地图渲染方法。
本公开的实施例提供了一种电子地图渲染方法及装置,通过对待渲染视图进行拆分处理,得到待渲染视图对应的多个子视图,获取多个子视图对应的视图坐标信息,对多个子视图进行位图转换处理,生成多个子视图对应的位图图像,调用地图渲染引擎根据视图坐标信息对位图图像进行渲染,生成目标电子地图。本公开的实施例通过将Android View进行拆分,将每个子视图作为地图渲染元素传入地图渲染引擎,通过渲染引擎将AndroidView构建出来,将Android View与地图渲染元素合并到同一个线程,实现Android View与地图渲染元素位置更新的绝对同步,提高了用户体验。
附图说明
为了更清楚地说明本公开的实施例的技术方案,下面将对本公开的实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开的实施例提供的一种电子地图渲染方法的步骤流程图;
图2为本公开的实施例提供的另一种电子地图渲染方法的步骤流程图;
图3为本公开的实施例提供的一种待渲染视图的示意图;
图4为本公开的实施例提供的一种子视图的示意图;
图5为本公开的实施例提供的一种位图图像的示意图;
图6为本公开的实施例提供的一种位图图像布局的示意图;
图7为本公开的实施例提供的一种目标电子地图的示意图;
图8为本公开的实施例提供的一种电子地图渲染装置的结构示意图;
图9为本公开的实施例提供的另一种电子地图渲染装置的结构示意图。
具体实施方式
下面将结合本公开的实施例中的附图,对本公开的实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开的实施例一部分实施例,而不是全部的实施例。基于本公开的实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开的实施例保护的范围。
实施例一
参照图1,示出了本公开的实施例提供的一种电子地图渲染方法的步骤流程图,如图1所示,该电子地图渲染方法可以包括如下步骤:
步骤101:对待渲染视图进行拆分处理,得到所述待渲染视图对应的多个子视图。
本公开的实施例可以应用于通过渲染引擎将Android View构建出来,将AndroidView与地图渲染元素合并到同一个线程,实现Android View与地图渲染元素位置更新的绝对同步的场景中。
待渲染视图(即Android View)是指需要在电子地图上进行渲染的视图,在本示例中,待渲染视图可以包括多个子视图。
在获取到待渲染视图之后,可以对待渲染视图进行拆分处理,以得到待渲染视图对应的多个子视图,例如,如图3所示,图3所示视图即为待渲染视图,在对该待渲染视图进行拆分之后,即可得到如图4所示的两个子视图等。
可以理解地,上述示例仅是为了更好地理解本公开的实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在对待渲染视图进行拆分处理得到待渲染视图对应的多个子视图之后,执行步骤102。
步骤102:获取所述多个子视图对应的视图坐标信息。
视图坐标信息是指子视图在待渲染视图中的坐标信息,在本示例中,可以预先定义待渲染视图的坐标原点,在对待渲染视图进行拆分得到多个子视图之后,可以根据每个子视图在待渲染视图中的位置,获取到每个子视图对应的视图坐标信息,具体地,对于该过程可以结合下述具体实现方式进行详细描述。
在本公开的实施例的一种具体实现方式中,上述步骤102可以包括:
子步骤A1:获取预先定义的所述待渲染视图上的坐标原点。
在本实施例中,坐标原点即(0,0)点。
在具体实现中,在获取到待渲染视图之后,即可以对待渲染视图的坐标原点进行定义,例如,可以预先定义待渲染视图的左上角点作为坐标原点等。
在获取到预先定义的待渲染视图上的坐标原点之后,执行子步骤A2。
子步骤A2:基于所述坐标原点和所述多个子视图在所述待渲染视图上的位置,确定所述多个子视图在所述待渲染视图上的视图坐标信息。
在获取到待渲染视图上的坐标原点之后,可以获取多个子视图在待渲染视图上的位置,进而,可以结合多个子视图在待渲染视图上的位置,以及待渲染视图上的坐标原点,计算得到多个子视图在待渲染视图上的视图坐标信息。
在获取到多个子视图对应的视图坐标信息之后,执行步骤103。
步骤103:对所述多个子视图进行位图转换处理,生成所述多个子视图对应的位图图像。
在对待渲染视图进行拆分得到多个子视图之后,可以对多个子视图进行位图转换处理,以生成多个子视图对应的位图图像,该位图图像即为bitmap格式的图像。例如,图4为拆分后得到的两个子视图,在对两个子视图分别进行位图转换处理之后,得到的两个子视图的位图图像可以如图5所示。
在对多个子视图进行位图转换处理生成多个子视图对应的位图图像之后,执行步骤104。
步骤104:调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图。
地图渲染引擎是指用于对地图元素进行渲染的引擎。
在对多个子视图进行位图转换处理生成多个子视图对应的位图图像之后,可以调用地图渲染引擎根据视图坐标信息对位图图像进行渲染,以生成目标电子地图,具体地,对于该过程可以结合下述具体实现方式进行详细描述。
在本公开的实施例的另一种具体实现方式中,上述步骤104可以包括:
子步骤B1:将所述位图图像添加至所述地图渲染引擎。
在本公开的实施例中,在获取到多个子视图的位图图像之后,可以将位图图像添加至地图渲染引擎中,以等待地图渲染引擎的渲染处理。
在将位图图像添加至地图渲染引擎之后,执行子步骤B2。
子步骤B2:调用所述地图渲染引擎根据所述视图坐标信息,在电子地图上对所述位图图像进行布局。
在将位图图像添加至地图渲染引擎中之后,可以调用地图渲染引擎根据视图坐标信息在电子地图上对位图图像进行布局,如图6所示,结合子视图的坐标信息,将子视图对应的位图图像映射至电子地图上,从而实现多个子视图的位图图像在电子地图上的布局。
在调用地图渲染引擎根据视图坐标信息在电子地图上对位图图像进行布局之后,执行子步骤B3。
子步骤B3:调用所述地图渲染引擎对布局后的电子地图进行渲染,生成所述目标电子地图。
在调用地图渲染引擎根据视图坐标信息在电子地图上对位图图像进行布局之后,则可以调用地图渲染引擎对布局后的电子地图进行渲染,从而可以生成目标电子地图,生成的目标电子地图可以如图7所示。
本公开的实施例通过将Android View进行拆分,将每个子视图作为地图渲染元素传入地图渲染引擎,通过渲染引擎将Android View构建出来,将Android View与地图渲染元素合并到同一个线程,实现Android View与地图渲染元素位置更新的绝对同步,提高了用户体验。
本公开的实施例提供的电子地图渲染方法,通过对待渲染视图进行拆分处理,得到待渲染视图对应的多个子视图,获取多个子视图对应的视图坐标信息,对多个子视图进行位图转换处理,生成多个子视图对应的位图图像,调用地图渲染引擎根据视图坐标信息对位图图像进行渲染,生成目标电子地图。本公开的实施例通过将Android View进行拆分,将每个子视图作为地图渲染元素传入地图渲染引擎,通过渲染引擎将Android View构建出来,将Android View与地图渲染元素合并到同一个线程,实现Android View与地图渲染元素位置更新的绝对同步,提高了用户体验。
实施例二
参照图2,示出了本公开的实施例提供的另一种电子地图渲染方法的步骤流程图,如图2所示,该电子地图渲染方法可以包括如下步骤:
步骤201:对待渲染视图进行拆分处理,得到所述待渲染视图对应的多个子视图。
本公开的实施例可以应用于通过渲染引擎将Android View构建出来,将AndroidView与地图渲染元素合并到同一个线程,实现Android View与地图渲染元素位置更新的绝对同步的场景中。
待渲染视图(即Android View)是指需要在电子地图上进行渲染的视图,在本示例中,待渲染视图可以包括多个子视图。
在获取到待渲染视图之后,可以对待渲染视图进行拆分处理,以得到待渲染视图对应的多个子视图,例如,如图3所示,图3所示视图即为待渲染视图,在对该待渲染视图进行拆分之后,即可得到如图4所示的两个子视图等。
可以理解地,上述示例仅是为了更好地理解本公开的实施例的技术方案而列举的示例,不作为对本实施例的唯一限制。
在对待渲染视图进行拆分处理得到待渲染视图对应的多个子视图之后,执行步骤202。
步骤202:获取所述多个子视图对应的视图坐标信息。
视图坐标信息是指子视图在待渲染视图中的坐标信息,在本示例中,可以预先定义待渲染视图的坐标原点,在对待渲染视图进行拆分得到多个子视图之后,可以根据每个子视图在待渲染视图中的位置,获取到每个子视图对应的视图坐标信息,具体地,对于该过程可以结合下述具体实现方式进行详细描述。
在本公开的实施例的一种具体实现方式中,上述步骤202可以包括:
子步骤C1:获取预先定义的所述待渲染视图上的坐标原点。
在本实施例中,坐标原点即(0,0)点。
在具体实现中,在获取到待渲染视图之后,即可以对待渲染视图的坐标原点进行定义,例如,可以预先定义待渲染视图的左上角点作为坐标原点等。
在获取到预先定义的待渲染视图上的坐标原点之后,执行子步骤C2。
子步骤C2:基于所述坐标原点和所述多个子视图在所述待渲染视图上的位置,确定所述多个子视图在所述待渲染视图上的视图坐标信息。
在获取到待渲染视图上的坐标原点之后,可以获取多个子视图在待渲染视图上的位置,进而,可以结合多个子视图在待渲染视图上的位置,以及待渲染视图上的坐标原点,计算得到多个子视图在待渲染视图上的视图坐标信息。
在获取到多个子视图对应的视图坐标信息之后,执行步骤203。
步骤203:对所述多个子视图进行位图转换处理,生成所述多个子视图对应的位图图像。
在对待渲染视图进行拆分得到多个子视图之后,可以对多个子视图进行位图转换处理,以生成多个子视图对应的位图图像,该位图图像即为bitmap格式的图像。例如,图4为拆分后得到的两个子视图,在对两个子视图分别进行位图转换处理之后,得到的两个子视图的位图图像可以如图5所示。
在对多个子视图进行位图转换处理生成多个子视图对应的位图图像之后,执行步骤204。
步骤204:调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图。
地图渲染引擎是指用于对地图元素进行渲染的引擎。
在对多个子视图进行位图转换处理生成多个子视图对应的位图图像之后,可以调用地图渲染引擎根据视图坐标信息对位图图像进行渲染,以生成目标电子地图,具体地,对于该过程可以结合下述具体实现方式进行详细描述。
在本公开的实施例的另一种具体实现方式中,上述步骤204可以包括:
子步骤D1:将所述位图图像添加至所述地图渲染引擎。
在本公开的实施例中,在获取到多个子视图的位图图像之后,可以将位图图像添加至地图渲染引擎中,以等待地图渲染引擎的渲染处理。
在将位图图像添加至地图渲染引擎之后,执行子步骤D2。
子步骤D2:调用所述地图渲染引擎根据所述视图坐标信息,在电子地图上对所述位图图像进行布局。
在将位图图像添加至地图渲染引擎中之后,可以调用地图渲染引擎根据视图坐标信息在电子地图上对位图图像进行布局,如图6所示,结合子视图的坐标信息,将子视图对应的位图图像映射至电子地图上,从而实现多个子视图的位图图像在电子地图上的布局。
在调用地图渲染引擎根据视图坐标信息在电子地图上对位图图像进行布局之后,执行子步骤D3。
子步骤D3:调用所述地图渲染引擎对布局后的电子地图进行渲染,生成所述目标电子地图。
在调用地图渲染引擎根据视图坐标信息在电子地图上对位图图像进行布局之后,则可以调用地图渲染引擎对布局后的电子地图进行渲染,从而可以生成目标电子地图,生成的目标电子地图可以如图7所示。
本公开的实施例通过将Android View进行拆分,将每个子视图作为地图渲染元素传入地图渲染引擎,通过渲染引擎将Android View构建出来,将Android View与地图渲染元素合并到同一个线程,实现Android View与地图渲染元素位置更新的绝对同步,提高了用户体验。
步骤205:建立并保存各所述位图图像的图像标识与各所述位图图像对应的子视图之间的对应关系。
图像标识是指用于指示多个子视图对应的位图图像的标识。在本示例中,图像标识即为图像ID,可以为数字标识,也可以为特殊字符标识等,具体地,对于图像标识的具体表现形式可以根据业务需求而定,本实施例对此不加以限制。
在渲染生成目标电子地图之后,可以建立各位图图像与对应的子视图之间的对应关系,并保存该对应关系。
在建立并保存各位图图像的图像标识与各位图图像对应的子视图之间的对应关系之后,执行步骤206。
步骤206:在所述多个子视图中的目标子视图存在视图更新的情况下,获取所述目标子视图对应的更新子视图。
目标子视图是指多个子视图中产生更新的子视图,在本示例中,目标子视图可以为一个子视图,也可以为两个或两个以上数量的子视图,具体地,对于目标子视图的数量可以根据业务需求而定,本实施例对此不加以限制。
在渲染生成目标电子地图之后,可以对多个子视图进行监测,在监测到多个子视图中的目标子视图存在视图更新的情况下,则可以获取目标子视图对应的更新子视图。
在获取到目标子视图对应的更新子视图之后,执行步骤207。
步骤207:对所述更新子视图进行位图转换处理,生成所述更新子视图对应的目标位图图像。
目标位图图像是指在对更新子视图进行位图转换之后得到的图像。
在获取到目标子视图对应的更新子视图之后,则可以对更新子视图进行位图转换处理,以生成更新子视图对应的目标位图图像。
在对更新子视图进行位图转换处理生成更新子视图对应的目标位图图像之后,执行步骤208。
步骤208:获取所述目标位图图像对应的目标坐标信息。
目标坐标信息是指目标位图图像在原始的待渲染视图上的坐标信息。
在对更新子视图进行位图转换处理生成更新子视图对应的目标位图图像之后,则可以获取目标位图图像对应的目标坐标信息,具体地,可以结合更新子视图在待渲染视图中的位置及待渲染视图的坐标原点,确定出更新子视图对应的坐标信息,并将该坐标信息作为目标位图图像的目标坐标信息。
在获取到目标位图图像对应的目标坐标信息之后,执行步骤209。
步骤209:调用所述地图渲染引擎在电子地图上根据所述目标坐标信息对所述目标位图图像进行渲染显示。
在获取到目标位图图像对应的目标坐标信息之后,则可以调用地图渲染引擎在电子地图上根据目标坐标信息对目标位图图像进行渲染显示,具体地,可以将目标位图图像添加至地图渲染引擎,然后,结合目标坐标信息将目标位图图像在电子地图上进行布局,然后调用地图渲染引擎对目标位图图像进行渲染显示,在具体实现中,可以通过Android SDK提供的ViewTreeObserver,对原始View组件添加ViewTreeObserver#addOnDrawListener()回调监听,当原始View组件产生UI更新时,会触发View的onDraw()方法,在第6步中添加的View的回调监听会在View执行onDraw()方法时触发回调,然后对更新后的View重新转换成Bitmap图片,并更新到地图渲染引擎,来实现Android View的UI更新的能力。
本公开的实施例可以利用Android View的ViewTreeObserver回调来实现AndroidView的UI更新。
步骤210:在接收到用户在所述目标电子地图上执行的点击事件之后,获取所述点击事件对应的地图元素。
点击事件是指用户在目标电子地图上执行的点击地图元素的事件。
在生成目标电子地图之后,则可以接收用户在目标电子地图上执行的点击事件,并获取该点击事件对应的地图元素,即用户点击的地图元素。
在获取到点击事件对应的地图元素之后,执行步骤211。
步骤211:获取所述多个子视图中与所述地图元素匹配的第一子视图。
第一子视图是指与点击事件对应的地图元素对应的多个子视图中的子视图。
在获取到点击事件对应的地图元素之后,则可以获取多个子视图中与地图元素匹配的第一子视图。
在获取到多个子视图中与地图元素匹配的第一子视图之后,执行步骤212。
步骤212:反馈所述点击事件给所述第一子视图。
在获取到多个子视图中与地图元素匹配的第一子视图之后,可以将该点击事件反馈给第一子视图,本公开的实施例通过地图手势管理,实现Android View的事件响应;完成了Android View的完整功能,并提升了用户体验。
本公开的实施例提供的电子地图渲染方法,通过对待渲染视图进行拆分处理,得到待渲染视图对应的多个子视图,获取多个子视图对应的视图坐标信息,对多个子视图进行位图转换处理,生成多个子视图对应的位图图像,调用地图渲染引擎根据视图坐标信息对位图图像进行渲染,生成目标电子地图。本公开的实施例通过将Android View进行拆分,将每个子视图作为地图渲染元素传入地图渲染引擎,通过渲染引擎将Android View构建出来,将Android View与地图渲染元素合并到同一个线程,实现Android View与地图渲染元素位置更新的绝对同步,提高了用户体验。
实施例三
参照图8,示出了本公开的实施例提供的一种电子地图渲染装置的结构示意图,如图8所示,该电子地图渲染装置800可以包括如下模块:
子视图获取模块810,用于对待渲染视图进行拆分处理,得到所述待渲染视图对应的多个子视图;
视图坐标获取模块820,用于获取所述多个子视图对应的视图坐标信息;
位图图像生成模块830,用于对所述多个子视图进行位图转换处理,生成所述多个子视图对应的位图图像;
目标地图生成模块840,用于调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图。
可选地,所述视图坐标获取模块820包括:
坐标原点获取单元,用于获取预先定义的所述待渲染视图上的坐标原点;
视图坐标确定单元,用于基于所述坐标原点和所述多个子视图在所述待渲染视图上的位置,确定所述多个子视图在所述待渲染视图上的视图坐标信息。
可选地,所述目标地图生成模块830包括:
位图图像添加单元,用于将所述位图图像添加至所述地图渲染引擎;
位图图像布局单元,用于调用所述地图渲染引擎根据所述视图坐标信息,在电子地图上对所述位图图像进行布局;
目标地图生成单元,用于调用所述地图渲染引擎对布局后的电子地图进行渲染,生成所述目标电子地图。
本公开的实施例提供的电子地图渲染装置,通过对待渲染视图进行拆分处理,得到待渲染视图对应的多个子视图,获取多个子视图对应的视图坐标信息,对多个子视图进行位图转换处理,生成多个子视图对应的位图图像,调用地图渲染引擎根据视图坐标信息对位图图像进行渲染,生成目标电子地图。本公开的实施例通过将Android View进行拆分,将每个子视图作为地图渲染元素传入地图渲染引擎,通过渲染引擎将Android View构建出来,将Android View与地图渲染元素合并到同一个线程,实现Android View与地图渲染元素位置更新的绝对同步,提高了用户体验。
实施例四
参照图9,示出了本公开的实施例提供的另一种电子地图渲染装置的结构示意图,如图9所示,该电子地图渲染装置900可以包括如下模块:
子视图获取模块910,用于对待渲染视图进行拆分处理,得到所述待渲染视图对应的多个子视图;
视图坐标获取模块920,用于获取所述多个子视图对应的视图坐标信息;
位图图像生成模块930,用于对所述多个子视图进行位图转换处理,生成所述多个子视图对应的位图图像;
目标地图生成模块940,用于调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图;
对应关系建立模块950,用于建立并保存各所述位图图像的图像标识与各所述位图图像对应的子视图之间的对应关系;
更新子视图获取模块960,用于在所述多个子视图中的目标子视图存在视图更新的情况下,获取所述目标子视图对应的更新子视图;
目标位图生成模块970,用于对所述更新子视图进行位图转换处理,生成所述更新子视图对应的目标位图图像;
目标坐标获取模块980,用于获取所述目标位图图像对应的目标坐标信息;
目标位图渲染模块990,用于调用所述地图渲染引擎在电子地图上根据所述目标坐标信息对所述目标位图图像进行渲染显示;
地图元素获取模块9100,用于在接收到用户在所述目标电子地图上执行的点击事件之后,获取所述点击事件对应的地图元素;
第一子视图获取模块9110,用于获取所述多个子视图中与所述地图元素匹配的第一子视图;
点击事件反馈模块9120,用于反馈所述点击事件给所述第一子视图。
本公开的实施例提供的电子地图渲染装置,通过对待渲染视图进行拆分处理,得到待渲染视图对应的多个子视图,获取多个子视图对应的视图坐标信息,对多个子视图进行位图转换处理,生成多个子视图对应的位图图像,调用地图渲染引擎根据视图坐标信息对位图图像进行渲染,生成目标电子地图。本公开的实施例通过将Android View进行拆分,将每个子视图作为地图渲染元素传入地图渲染引擎,通过渲染引擎将Android View构建出来,将Android View与地图渲染元素合并到同一个线程,实现Android View与地图渲染元素位置更新的绝对同步,提高了用户体验。
本公开的实施例还提供了一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现前述实施例的电子地图渲染方法。
本公开的实施例还提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述实施例的电子地图渲染方法。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本公开的实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本公开的实施例的内容,并且上面对特定语言所做的描述是为了披露本公开的实施例的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开的实施例要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的实施例的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
本公开的实施例的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本公开的实施例的动态图片的生成设备中的一些或者全部部件的一些或者全部功能。本公开的实施例还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。这样的实现本公开的实施例的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本公开的实施例进行说明而不是对本公开的实施例进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开的实施例可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述仅为本公开的实施例的较佳实施例而已,并不用以限制本公开的实施例,凡在本公开的实施例的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本公开的实施例的保护范围之内。
以上所述,仅为本公开的实施例的具体实施方式,但本公开的实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开的实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的实施例的保护范围之内。因此,本公开的实施例的保护范围应以权利要求的保护范围为准。
Claims (12)
1.一种电子地图渲染方法,其特征在于,包括:
对待渲染视图进行拆分处理,得到所述待渲染视图对应的多个子视图;
获取所述多个子视图对应的视图坐标信息;
对所述多个子视图进行位图转换处理,生成所述多个子视图对应的位图图像;
调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图。
2.根据权利要求1所述的方法,其特征在于,所述获取所述多个子视图对应的视图坐标信息,包括:
获取预先定义的所述待渲染视图上的坐标原点;
基于所述坐标原点和所述多个子视图在所述待渲染视图上的位置,确定所述多个子视图在所述待渲染视图上的视图坐标信息。
3.根据权利要求1所述的方法,其特征在于,所述调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图,包括:
将所述位图图像添加至所述地图渲染引擎;
调用所述地图渲染引擎根据所述视图坐标信息,在电子地图上对所述位图图像进行布局;
调用所述地图渲染引擎对布局后的电子地图进行渲染,生成所述目标电子地图。
4.根据权利要求1所述的方法,其特征在于,在所述调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图之后,所述方法还包括:
建立并保存各所述位图图像的图像标识与各所述位图图像对应的子视图之间的对应关系;
在所述多个子视图中的目标子视图存在视图更新的情况下,获取所述目标子视图对应的更新子视图;
对所述更新子视图进行位图转换处理,生成所述更新子视图对应的目标位图图像;
获取所述目标位图图像对应的目标坐标信息;
调用所述地图渲染引擎在电子地图上根据所述目标坐标信息对所述目标位图图像进行渲染显示。
5.根据权利要求1所述的方法,其特征在于,在所述调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图之后,所述方法还包括:
在接收到用户在所述目标电子地图上执行的点击事件之后,获取所述点击事件对应的地图元素;
获取所述多个子视图中与所述地图元素匹配的第一子视图;
反馈所述点击事件给所述第一子视图。
6.一种电子地图渲染装置,其特征在于,包括:
子视图获取模块,用于对待渲染视图进行拆分处理,得到所述待渲染视图对应的多个子视图;
视图坐标获取模块,用于获取所述多个子视图对应的视图坐标信息;
位图图像生成模块,用于对所述多个子视图进行位图转换处理,生成所述多个子视图对应的位图图像;
目标地图生成模块,用于调用地图渲染引擎根据所述视图坐标信息对所述位图图像进行渲染,生成目标电子地图。
7.根据权利要求6所述的装置,其特征在于,所述视图坐标获取模块包括:
坐标原点获取单元,用于获取预先定义的所述待渲染视图上的坐标原点;
视图坐标确定单元,用于基于所述坐标原点和所述多个子视图在所述待渲染视图上的位置,确定所述多个子视图在所述待渲染视图上的视图坐标信息。
8.根据权利要求6所述的装置,其特征在于,所述目标地图生成模块包括:
位图图像添加单元,用于将所述位图图像添加至所述地图渲染引擎;
位图图像布局单元,用于调用所述地图渲染引擎根据所述视图坐标信息,在电子地图上对所述位图图像进行布局;
目标地图生成单元,用于调用所述地图渲染引擎对布局后的电子地图进行渲染,生成所述目标电子地图。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
对应关系建立模块,用于建立并保存各所述位图图像的图像标识与各所述位图图像对应的子视图之间的对应关系;
更新子视图获取模块,用于在所述多个子视图中的目标子视图存在视图更新的情况下,获取所述目标子视图对应的更新子视图;
目标位图生成模块,用于对所述更新子视图进行位图转换处理,生成所述更新子视图对应的目标位图图像;
目标坐标获取模块,用于获取所述目标位图图像对应的目标坐标信息;
目标位图渲染模块,用于调用所述地图渲染引擎在电子地图上根据所述目标坐标信息对所述目标位图图像进行渲染显示。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
地图元素获取模块,用于在接收到用户在所述目标电子地图上执行的点击事件之后,获取所述点击事件对应的地图元素;
第一子视图获取模块,用于获取所述多个子视图中与所述地图元素匹配的第一子视图;
点击事件反馈模块,用于反馈所述点击事件给所述第一子视图。
11.一种电子设备,其特征在于,包括:
处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至5中任一项所述的电子地图渲染方法。
12.一种可读存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行权利要求1至5中任一项所述的电子地图渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111017410.3A CN113822978B (zh) | 2021-08-31 | 2021-08-31 | 电子地图渲染方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111017410.3A CN113822978B (zh) | 2021-08-31 | 2021-08-31 | 电子地图渲染方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113822978A true CN113822978A (zh) | 2021-12-21 |
CN113822978B CN113822978B (zh) | 2022-12-27 |
Family
ID=78923479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111017410.3A Active CN113822978B (zh) | 2021-08-31 | 2021-08-31 | 电子地图渲染方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113822978B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115470423A (zh) * | 2022-11-15 | 2022-12-13 | 深圳市乐凡信息科技有限公司 | 安卓系统的更新方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130321456A1 (en) * | 2012-06-05 | 2013-12-05 | Jeffrey P. Hultquist | Method, system and apparatus for rendering a map according to hybrid map data |
CN110221889A (zh) * | 2019-05-05 | 2019-09-10 | 北京三快在线科技有限公司 | 一种页面展示方法、装置、电子设备及存储介质 |
CN110457512A (zh) * | 2018-05-08 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 一种地图显示方法、装置、服务器、终端及存储介质 |
CN111210490A (zh) * | 2020-01-06 | 2020-05-29 | 北京百度网讯科技有限公司 | 电子地图构建方法、装置、设备和介质 |
CN112169324A (zh) * | 2020-09-22 | 2021-01-05 | 完美世界(北京)软件科技发展有限公司 | 游戏场景的渲染方法、装置及设备 |
CN112950757A (zh) * | 2021-03-30 | 2021-06-11 | 上海哔哩哔哩科技有限公司 | 图像渲染方法及装置 |
-
2021
- 2021-08-31 CN CN202111017410.3A patent/CN113822978B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130321456A1 (en) * | 2012-06-05 | 2013-12-05 | Jeffrey P. Hultquist | Method, system and apparatus for rendering a map according to hybrid map data |
CN110457512A (zh) * | 2018-05-08 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 一种地图显示方法、装置、服务器、终端及存储介质 |
CN110221889A (zh) * | 2019-05-05 | 2019-09-10 | 北京三快在线科技有限公司 | 一种页面展示方法、装置、电子设备及存储介质 |
CN111210490A (zh) * | 2020-01-06 | 2020-05-29 | 北京百度网讯科技有限公司 | 电子地图构建方法、装置、设备和介质 |
CN112169324A (zh) * | 2020-09-22 | 2021-01-05 | 完美世界(北京)软件科技发展有限公司 | 游戏场景的渲染方法、装置及设备 |
CN112950757A (zh) * | 2021-03-30 | 2021-06-11 | 上海哔哩哔哩科技有限公司 | 图像渲染方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115470423A (zh) * | 2022-11-15 | 2022-12-13 | 深圳市乐凡信息科技有限公司 | 安卓系统的更新方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113822978B (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106846497B (zh) | 应用于终端的呈现三维地图的方法和装置 | |
CN111414225B (zh) | 三维模型远程展示方法、第一终端、电子设备及存储介质 | |
CN106713968B (zh) | 一种直播数据显示方法和装置 | |
CN110471701B (zh) | 图像渲染的方法、装置、存储介质及电子设备 | |
CN111581567B (zh) | 一种页面生成方法及装置 | |
CN110634171A (zh) | 一种绘制地图的装置和方法 | |
CN108364324B (zh) | 图像数据处理方法、装置及电子终端 | |
CN113822978B (zh) | 电子地图渲染方法及装置 | |
CN109445760B (zh) | 图像渲染方法和系统 | |
US11874859B2 (en) | Method of and system for defining a service for serving map images | |
CN112188087B (zh) | 一种全景视频的截图方法、装置、存储介质和计算机设备 | |
US20170109113A1 (en) | Remote Image Projection Method, Sever And Client Device | |
CN117078888A (zh) | 虚拟角色的服装生成方法、装置、介质及电子设备 | |
CN111736888A (zh) | 一种打包方法、装置、电子设备及存储介质 | |
CN111913711B (zh) | 视频渲染方法和装置 | |
CN113419806B (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN106383705B (zh) | 在应用瘦客户端中设置鼠标显示状态的方法及装置 | |
CN112988810B (zh) | 信息查找方法、装置及设备 | |
CN111882629A (zh) | 图像渲染方法、装置、设备及存储介质 | |
CN113377476A (zh) | 界面显示方法、相关装置及计算机程序产品 | |
CN113242398A (zh) | 一种三维标注的音视频通话方法和系统 | |
CN106445535B (zh) | 一种操作处理方法和装置 | |
CN110059281B (zh) | 图片显示方法、装置、终端及计算机可读存储介质 | |
JP5842029B2 (ja) | 画像データをキャッシュする情報処理支援装置、情報処理装置及び情報処理支援プログラム | |
CN105976422A (zh) | 一种利用点九图像优化3d空间纹理的方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |