地图场景绘制方法、装置、可读存储介质和计算机设备与流程

文档序号:22391517发布日期:2020-09-29 17:57阅读:155来源:国知局
地图场景绘制方法、装置、可读存储介质和计算机设备与流程

本申请涉及计算机技术领域,特别是涉及一种电子地图场景绘制方法、装置、计算机可读存储介质和计算机设备。



背景技术:

随着计算机技术的发展,出现了电子地图。当电子地图倾斜角较大时,需要加载的地图区域比较大,应用性能开销较大。而此时远处的地物已经出现了变形,显示效果较差,较难辨认,对用户的展示意义很小。此时,如果在电子地图的地面之上绘制场景,可以隐藏远处的建筑。然而,目前的地图场景绘制方法,存在场景逼真度低的问题。



技术实现要素:

基于此,有必要针对目前地图场景绘制方法存在场景逼真度低的技术问题,提供一种地图场景绘制方法、装置、计算机可读存储介质和计算机设备。

一种地图场景绘制方法,包括:

当检测到电子地图发生变化时,获取地图参数;

根据地图参数确定在场景图像中的截取范围的坐标;

获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域;

将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中。

一种地图场景绘制装置,所述装置包括:

第一获取模块,用于当检测到地图发生变化时,获取地图参数;

确定模块,用于根据地图参数确定在场景图像中的截取范围的坐标;

第二获取模块,用于获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域;

绘制模块,用于将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:

当检测到电子地图发生变化时,获取地图参数;

根据地图参数确定在场景图像中的截取范围的坐标;

获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域;

将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:

当检测到电子地图发生变化时,获取地图参数;

根据地图参数确定在场景图像中的截取范围的坐标;

获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域;

将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中。

上述地图场景绘制方法、装置、计算机可读存储介质和计算机设备,当检测到电子地图发生变化时,获取地图参数,根据地图参数确定在场景图像中的截取范围的坐标,即地图发生变化时,在场景图像中的截取范围的坐标发生变化;获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域,将截取范围坐标所形成的图像区域绘制在电子地图的视野上方区域中,能在当电子地图发生变化时,使电子地图中的场景也随着电子地图而变化,实现场景与电子地图的联动,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

附图说明

图1为一个实施例中地图场景绘制方法的流程示意图;

图2为一个实施例中地图场景绘制方法的坐标示意图;

图3为一个实施例中电子地图发生旋转前的界面示意图;

图4为一个实施例中电子地图发生旋转后的界面示意图;

图5为一个实施例中电子地图发生平移前的界面示意图;

图6为一个实施例中电子地图发生平移后的界面示意图;

图7为一个实施例中电子地图发生倾斜前的界面示意图;

图8为一个实施例中电子地图发生倾斜后的界面示意图;

图9为一个实施例中倾斜角最大对应的界面示意图;

图10为一个实施例中混色区域的界面示意图;

图11为一个实施例中将图像区域绘制在视野上方区域的流程示意图;

图12为一个实施例中地图场景绘制装置的结构框图;

图13为一个实施例中计算机设备的内部结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

在一个实施例中,该地图场景绘制方法可应用于终端或服务器。其中,终端具体可以是台式终端或手持终端。终端具体可以手机、平板电脑、笔记本电脑等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。地图场景绘制方法可通过地图场景绘制程序实现,地图场景绘制程序可应用于终端或服务器。

在一个实施例中,如图1所示,提供了一种地图场景绘制方法。本实施例主要以该方法应用于终端或服务器来举例说明。参照图1,该地图场景绘制方法具体包括如下步骤:

步骤102,当检测到电子地图发生变化时,获取地图参数。

其中,电子地图也称为数字地图,是利用计算机技术,以数字方式存储和查阅的地图。电子地图可通过定位系统从而确定终端所在位置。定位系统可以是gps(globalpositioningsystem,全球定位系统)或北斗卫星导航系统等。电子地图可在终端显示。地图参数是可用于表示地图尺寸的参数。地图参数具体可以是旋转角度、经纬度、比例尺、倾斜角、视野上方区域的高度、偏移距离中至少一种。

具体地,当用户打开电子地图时,地图场景绘制程序根据初始设定绘制电子地图以及场景图像对应的图像区域。地图场景绘制程序可获取用户的操作指令,根据用户的操作指令确定电子地图发生变化。地图场景绘制程序检测到电子地图发生变化时,获取地图参数。

本实施例中,地图场景绘制程序可根据电子地图中视点的变化确定电子地图发生变化。例如,当在使用电子地图的导航功能,且所在的地理位置发生变化时,确定电子地图发生变化,获取地图参数。

本实施例中,地图场景绘制程序可通过终端的摄像头或传感器等获取用户的手势,根据用户手势确定电子地图发生变化。其中,每个用户手势对应一种电子地图的变化。例如,五指张开向右移动代表向右平移,五指并拢向上移动代表向上倾斜等不限于此。

本实施例中,地图场景绘制程序可根据人脸的面部表情确定电子地图发生变化。例如,当人脸中出现微笑时,确定电子地图发生平移。当人脸中出现噘嘴时,确定电子地图发生旋转。

本实施例中,地图场景绘制程序还可根据人脸与屏幕之间的距离,确定电子地图发生变化。例如,当人脸与屏幕之间的距离不变时,电子地图不发生变化。当人脸与屏幕之间的距离大于第一预设距离小于第二预设距离时,确定电子地图发生平移。当人脸与屏幕之间的距离大于第二预设距离小于第三预设距离时,确定电子地图发生旋转等不限于此。

本实施例中,地图场景绘制程序还可根据人脸与屏幕之间的方位,确定电子地图发生变化。例如,地图场景绘制程序实时获取人脸图像。当人脸在图像的上方时,确定电子地图发生倾斜角减小的倾斜;当人脸在图像的下方时,确定电子地图发生倾斜角增大的倾斜。当人脸图像在图像的左方时,确定电子地图向左平移;当人脸图像在图像的右方时,确定电子地图向右平移。当部分人脸在图像的左边时,确定电子地图向左旋转;当部分人脸在图像的右边时,确定电子地图向右旋转。

步骤104,根据地图参数确定在场景图像中的截取范围的坐标。

其中,截取范围的坐标的数量可为1个或4个等不限于此。该截取范围的坐标用于从场景图像中确定截取范围。地图参数和场景图像中的截取范围的坐标存在转换关系。

具体地,地图场景绘制程序根据地图参数和常数确定在场景图像中的截图范围的顶点坐标。

本实施例中,地图场景绘制程序根据地图参数确定在场景图像中的一个截取范围的坐标,该坐标可为任意一个顶点的坐标。以长方形为例,地图场景绘制程序确定场景图像中左下角的坐标为(0,0),图像的长度为1,宽度为1,其中图像的长度和宽度均大于或等于屏幕的视野上方区域的长度和宽度,那么可以得到另外三个顶点的坐标为左上角(0,1)、右上角(1,1)、右下角(1,0)。那么此时将左下角(0,0)与视野上方区域左下角重合,场景图像的尺寸大于或等于视野上方区域的尺寸。

步骤106,获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域。

其中,场景图像是包含天空场景的图像。场景图像中还可以包含天气场景图像。场景图像可以是平面图像。例如场景图像可以是包含蓝天和白云的图像、包含夜晚的天空的图像、包含阴天和乌云的图像、包含天空和雨滴的图像、包含天空和雨滴和雷电的图像、包含天空和太阳的图像、包含天空和雪花的图像、包含天空和雾霾的天空图像、包含天空和冰雹的图像、节日场景图像或都市场景图像等不限于此。场景图像可用于增加3d(3dimensions,三维)地图的逼真度。场景图像可以是系统预设的图像,也可以通过获取用户配置的图像得到。

具体地,地图场景绘制程序从终端存储的场景图像中获取场景图像,并通过opengl(opengraphicslibrary,开放式图形库)从该场景图像中获取截取范围的坐标所形成的图像区域。例如,截取范围的坐标数量为4个,那么可根据截取范围的坐标的四个顶点,确定形成的图像区域为坐标所围成的长方形图像区域。截取范围的坐标为数量为1个,那么可根据终端的设置,截取以该坐标为圆心的圆形范围的坐标等不限于此。

本实施例中,地图场景绘制程序将截取范围的坐标输入至opengl中,则可得到截取范围的坐标所形成的图像区域,从而获取到当前电子地图的图像区域对应的场景图像。

本实施例中,地图场景绘制程序还可以根据地图参数确定电子地图的绘制尺寸。其中,电子地图的绘制尺寸与截取范围的坐标所形成的图像区域的尺寸相同。

本实施例中,地图场景视野上方区域可根据当前时间点获取对应的场景图像。例如6:00~18:00是白天,那么地图场景视野上方区域可根据当前时间点17:00获取白天对应的场景图像;当时间点为19:30时,是黑夜,那么地图场景视野上方区域获取黑夜对应的场景图像。

本实施例中,地图场景视野上方区域可根据当前日期对应的节日获取对应的场景图像。例如当前日期为12月25日圣诞节,则地图场景视野上方区域根据圣诞节获取对应的节日场景图像。

步骤108,将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中。

其中,视野是指注视某一点或某一片区域时所能看见的空间范围。视野上方区域是指用户所能看见的空间范围的上方区域。电子地图的视野上方区域是指人眼向正前方直视电子地图时的上方区域。视野上方区域具体可以指天空区域。

具体地,地图场景绘制程序通过opengl将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中。

本实施例中,地图场景绘制程序在终端展示该包含截取范围的坐标所形成的图像区域和电子地图的视野下方区域。其中,视野下方区域是指用户所能看见的空间范围的下方区域。电子地图的视野下方区域是指人眼向正前方直视电子地图时的下方区域。视野下方区域具体可以指地面区域。地面区域中可包括江河湖海、建筑、道路、树木、标志等。视野下方区域具体可以三维的效果绘制并展示在终端。

上述场景绘制方法,当检测到电子地图发生变化时,获取地图参数,根据地图参数确定在场景图像中的截取范围的坐标,即地图发生变化时,在场景图像中的截取范围的坐标发生变化;获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域,将截取范围坐标所形成的图像区域绘制在电子地图的视野上方区域中,能通过图像区域遮盖地图中远处的景物,降低系统开销,提升系统性能;且能在当电子地图发生变化时,使电子地图中的场景也随着电子地图而变化,实现场景与电子地图的联动,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,当检测到地图发生变化时,获取地图参数,包括:当检测到电子地图发生旋转时,获取地图参数,地图参数包括旋转角度。根据地图参数确定在场景图像中的截取范围的坐标,包括:根据旋转角度确定第一坐标值;获取电子地图发生旋转前的截取范围的坐标;根据第一坐标值以及旋转前的截取范围的坐标确定在场景图像中的截取范围的坐标。

其中,旋转角度可通过旋转前的角度和旋转后的角度计算得到。在旋转过程中,电子地图视野上方区域的宽度不变,高度也不变,但是宽度对应的坐标发生改变。第一坐标值是宽度值对应的坐标值。例如,旋转前的第一坐标值为0.1,发生旋转后,旋转角度对应的第一坐标值为0.2。如图2所示,为一个实施例中地图场景绘制方法的坐标示意图。其中,xoz平面为视野上方区域所在平面,也是场景图像所在平面。xoy平面为地图所在平面,且地图可为三维地图,xoy为地图的底面。

具体地,当地图场景绘制程序获取一个触控点触控指令以及另一个触控点的滑动指令时,确定检测到电子地图发生旋转,实时获取地图参数,其中该地图参数包括旋转角度。地图场景绘制程序根据实时获取的旋转角度确定与宽度相关的第一坐标值。地图场景绘制程序获取电子地图发生旋转前的截取范围的坐标,即发生旋转前的状态对应的截取范围的坐标。地图场景绘制程序根据第一坐标值以及旋转前的截取范围的坐标确定在场景图像中截取范围的坐标。

本实施例中,将截取范围的坐标设为(uleft,ubottom)、(uleft,1)、(uright,1)、(uright,ubottom)共四个,分别表示左下角、左上角、右上角和右下角四个顶点,形成长方形区域。那么第一坐标值可为uleft和uright。其中uleft、ubottom和uright为三个未知的地图参数的值。旋转前的坐标为(uleft_last,ubottom_last)、(uleft_last,1)、(uright_last,1)、(uright_last,ubottom_last)设场景图像为180度的场景图像,其中该场景图像还可以是其他度数对应的图像,例如可以是90度图像、270度图像等不限于此。lastangle表示旋转前的角度,currentangle表示当前角度即旋转后的角度,△angle表示旋转角度,那么

△angle=currentangle-lastangle

由于旋转角度与坐标偏移量之间有换算关系,则宽度对应的左边坐标△uleft的偏移量为

△uleft=△angle×2

那么,由于在使用opengl函数加载图像时,opengl要求图像坐标原点在图片最下面,而图像信息中的原点一般都在最上方,一行行记录下来的,就会导致整个图片上下颠倒,故坐标需要对应取反。因此,第一坐标值的计算如下式:

uleft=uleft_last-△angle×2/180=uleft_last-(currentangle-lastangle)/90

uright=uright_last-△angle×2/180=uright_last-(currentangle-lastangle)/90

而ubottom数值不变,即可得到旋转后,在场景图像中截取范围的坐标。

其中,uright的计算方式还可以是

uright=uright_last+width_texture_ratio,width_texture_ratio表示屏幕宽度在场景图像中的宽度比。上式实现的效果是电子地图的旋转方向与场景图像的旋转方向一致。

本实施例中,uleft的计算方式还可以是uleft=uleft_last+△angle×2/180=uleft_last+(currentangle-lastangle)/90。

本实施例中,如图3所示,为一个实施例中电子地图发生旋转前的界面示意图。如图4所示,为一个实施例中电子地图发生旋转后的界面示意图。其中,旋转前的状态为图3,地图场景绘制程序通过获取向左边的旋转指令之后得到图4的界面图。图中包含天空和白云的图像即是场景图像。图中包含天空和白云的区域即是视野上方区域,包含建筑物、道路和标志等的区域即为视野下方区域。由此可见,当旋转角发生变化时,云随着旋转角的变化而变化。界面图的指南针中阴影图像表示n(north,北),白色部分表示s(south,南),通过指南针的角度也可得到旋转角。或者,陀螺仪的旋转角度也可以通过该指南针展示在终端。

上述地图场景绘制方法,当检测到电子地图发生旋转时,获取电子地图的旋转角度,根据旋转角度确定第一坐标值,获取发生旋转前的截取范围的坐标,根据第一坐标值以及旋转前的截取范围的坐标确定当前在场景图像中截取范围的坐标,当在地图发生旋转时,能使场景图像随着电子地图一起旋转,实现场景与电子地图的联动,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,检测到地图发生变化时,获取地图参数,包括:当检测到地图发生平移时,获取地图参数,地图参数包括电子地图中心点的偏移距离。根据地图参数确定在场景图像中的截取范围的坐标,包括:根据电子地图中心点的偏移距离确定第一坐标值,获取电子地图发生平移前的截取范围的坐标;根据第一坐标值和平移前的截取范围的坐标确定在场景图像中的截取范围的坐标。

其中,地图中心点具体可以是地图视野下方区域范围内的中心点。中心点可用经纬度表示。中心点的偏移距离具体可以是根据中心点的经纬度转化得到屏幕坐标中的偏移距离。且当滑动指令仅仅是产生y轴方向的偏移时,宽度对应的坐标和高度对应坐标均不发生改变。

当电子地图发生x轴方向平移时,电子地图视野上方区域的宽度不变,高度也不变,但是宽度对应的坐标发生改变。例如,平移前的第一坐标值为0.1,发生旋转后,地图中心点的偏移距离对应的第一坐标值为0.15。

当电子地图仅仅发生y轴方向的平移时,宽度对应的坐标和高度对应的坐标均不发生改变。

具体地,当地图场景绘制程序获取到一个触控点的滑动指令时,确定检测到电子地图发生平移。地图场景绘制程序获取地图中心点在预设轴方向产生的偏移距离。其中预设轴为如图2中的x轴。地图场景绘制程序根据地图中心点的在预设轴方向产生的偏移距离确定与宽度相关的第一坐标值。地图场景绘制程序获取电子地图发生平移前的截取范围的坐标,将第一坐标值作为发生平移前的截图范围的坐标中对应的第一坐标的值,得到在场景图像中的截取范围的坐标。

本实施例中,同样地,将截取范围的坐标设为(uleft,ubottom)、(uleft,1)、(uright,1)、(uright,ubottom)共四个,分别表示左下角、左上角、右上角和右下角四个顶点,形成长方形区域。那么第一坐标值可为uleft和uright。其中uleft、ubottom和uright为三个未知的地图参数的值。旋转前的坐标为(uleft_last,ubottom_last)、(uleft_last,1)、(uright_last,1)、(uright_last,ubottom_last)。currentx表示平移后的地图中心点在x轴上的投影的值,lastx表示平移前的地图中心点在x轴上的值。由于旋转时,整个电子地图对应的坐标系同时发生旋转,则实际获取到的x轴方向的偏移与屏幕坐标的偏移相差cosα,其中,α为地图旋转角。

那么,地图中心点的偏移距离diffx为diffx=(currentx-lastx)·cosα

将偏移距离diffx归一化得到在场景图像中第一坐标值:

uleft=uleft_last+diffx/width_screen_max,其中,width_screen_max表示屏幕对应的最大宽度,为常数。

uright=uleft+width_texture_ratio,其中,width_texture_ratio表示屏幕宽度在场景图像中的宽度比。上式实现的效果是电子地图的平移方向与场景图像的移动方向相同。具体展示如图5和图6。

本实施例中,uleft的计算方式还可为

uleft=uleft_last+diffx·cosα/width_screen_max

本实施例中,如图5所示,为一个实施例中电子地图发生平移前的界面示意图。如图6所示,为一个实施例中电子地图发生平移后的界面示意图。其中,电子地图发生平移前的状态为图5,地图场景绘制程序通过获取向右的平移指令之后得到如图6的界面图。图中的天空和白云的图像即是场景图像。由此可见,当场景中心点发生变化时,白云随着偏移距离的变化而变化,即场景图像发生变化。

上述地图场景绘制方法,当检测到地图发生平移时,获取地图中心点的偏移距离,根据中心点的偏移距离确定第一坐标值,获取电子地图发生平移前的截取范围的坐标,根据第一坐标值和平移前的截取范围的坐标确定在场景图像中的截取范围的坐标,能在当地图发生平移时,使场景图像随着电子地图一起平移,实现场景与电子地图的联动,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,当检测到地图发生变化时,获取地图参数,包括:当检测到电子地图发生倾斜时,获取地图参数,地图参数包括视野上方区域的高度。根据地图参数确定在场景图像中的截取范围的坐标,包括:根据视野上方区域的高度确定第二坐标值;获取电子地图发生倾斜前的截取范围的坐标;根据第二坐标值以及倾斜前的截取范围的坐标确定在场景图像中的截取范围的坐标。

其中,第二坐标值与视野上方区域的高度相关。视野上方区域的高度可从opengl中直接得到,具体是根据地图中心点、倾斜角、旋转角、视窗大小等参数计算得到。在电子地图发生倾斜的过程中,电子地图视野上方区域的宽度不变,高度改变,故高度对应的坐标发生改变。

具体地,当地图场景绘制程序获取两个触控点的滑动指令,确定检测到电子地图发生倾斜,实时获取地图参数,其中该地图参数包括视野上方区域的高度。地图场景绘制程序根据实时获取的视野上方区域的高度确定与高度相关的第二坐标值。地图场景绘制程序获取电子地图发生倾斜前的截取范围的坐标,即发生倾斜前的状态对应的截取范围的坐标。地图场景绘制程序根据第二坐标值以及倾斜前的截取范围的坐标确定在场景图像中截取范围的坐标。

本实施例中,将截取范围的坐标设为(uleft,ubottom)、(uleft,1)、(uright,1)、(uright,ubottom)共四个,分别表示左下角、左上角、右上角和右下角四个顶点,形成长方形区域。那么第一坐标值可为uleft和uright。其中uleft、ubottom和uright为三个未知的地图参数的值。旋转前的坐标为(uleft_last,ubottom_last)、(uleft_last,1)、(uright_last,1)、(uright_last,ubottom_last)。当倾斜角改变时,uleft和uright参数不变,仅有ubottom发生变化。由于在使用opengl函数加载图像时,opengl要求图像坐标原点在图片最下面,而图像信息中的原点一般都在最上方,一行行记录下来的,就会导致整个图片上下颠倒,故坐标需要对应取反。第二坐标值的计算如下式:

ubottom=1-height_screen/height_screen_max

其中,height_screen表示视野上方区域的高度,width_screen_max表示屏幕对应的最大宽度,为常数。上式实现的效果是当视野上方区域的尺寸减小时,场景图像对应上移。具体展示如图7和图8。

本实施例中,如图7所示,为一个实施例中电子地图发生倾斜前的界面示意图。如图8所示,为一个实施例中电子地图发生倾斜后的界面示意图。其中,电子地图发生倾斜前的状态为图7,地图场景绘制程序通过获取倾斜指令之后得到如图8的界面图。图中的天空和白云的图像即是场景图像。由此可见,当场景中心点发生变化时,白云随着视野上方区域的高度的变化而变化。

上述地图场景绘制方法,当检测到地图发生倾斜时,获取地图中心点的偏移距离,根据视野上方区域的高度确定第二坐标值,获取电子地图发生倾斜前的截取范围的坐标,根据第二坐标值和倾斜前的截取范围的坐标确定在场景图像中的截取范围的坐标,能在当电子地图发生倾斜时,使场景图像随着电子地图一起倾斜,实现场景与电子地图的联动,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,在当检测到地图发生变化时,获取地图参数之前,该电子地图场景绘制方法还包括:当电子地图的倾斜角达到预设阈值时,获取电子地图的视野上方区域对应的最大高度和最大宽度,以及场景图像的高度和场景图像的宽度,其中,地图视野上方区域的最大宽度是屏幕显示的最大宽度;

根据视野上方区域对应的最大高度和屏幕显示的最大宽度的比值、场景图像的高度以及场景图像的宽度,将视野上方区域对应的最大宽度转化为在场景图像中的宽度比。

根据地图参数确定在场景图像中的截取范围的坐标,包括:根据在场景图像中的宽度比和地图参数确定在场景图像中的截取范围的坐标中宽度对应的第一坐标值。

其中,倾斜角的预设阈值可以是当倾斜角最大时,即电子地图的视野上方区域达到最大时对应的阈值。预设阈值可以是存储在终端的阈值。最大高度和最大宽度可通过像素获得。例如一个屏幕的屏幕分辨率为2244×1080,那么对应的最大宽度可为1080,最大高度为视野上方区域对应的像素点数量等不限于此。场景图像的高度和场景图像的宽度也可根据像素点获得。如图9所示,为一个实施例中倾斜角最大对应的界面示意图。地图的倾斜角达到预设阈值时的状态可以是初始状态。初始状态即为电子地图应用启动时,或者当视野上方区域的尺寸发生变化时的初始化状态。

当检测到地图的倾斜角达到预设阈值时,地图场景绘制程序获取地图视野上方区域对应的最大高度和最大宽度。其中,电子地图的视野上方区域的最大宽度是屏幕显示区域的最大宽度。最大高度即为倾斜角达到预设阈值时的高度。地图场景绘制程序根据视野上方区域对应的最大高度与显示屏显示的最大高度的比值、场景图像的高度以及场景图像的宽度,将视野上方区域对应的最大宽度转化为适用于opengl中的场景图像的宽度。地图场景绘制程序根据在场景图像中的宽度和地图参数可确定在场景图像中的截取范围的坐标中宽度对应的第一坐标值。

本实施例中,由于opengl中的图像的横纵坐标均在0~1之间,则地图视野上方区域的坐标需要转化为适用于opengl中的坐标。

当电子地图的倾斜角最大时,此时视野上方区域的坐标(left,1)、(left,bottom)、(right,1)和(right,bottom)。width_screen_max为屏幕显示的最大宽度。height_screen_max为视野上方区域对应的最大高度。height_texture为场景图像对应的宽度。width_texture_draw为视野上方区域在场景图像中对应的宽度。width_texture_ratio为屏幕宽度在场景图像中的宽度比。

其中,left=0,right=width_screen_max,

top=0,bottom=height_screen_max。

为确保视野上方区域的占比最大,且场景图像不被拉伸,避免变形,计算此时截取的场景图像宽度:

width_texture_draw/height_texture=width_screen_max/height_screen_max

那么,width_texture_draw=height_texture×width_screen_max/height_screen_max

那么这段宽度占整个图像的宽度比为

width_texture_ratio=width_texture_draw/width_texture

得到的width_texture_ratio的取值范围是(0,1]。

那么当得到uright的值时,需要计算uleft,可通过uleft=uright-width_texture_ratio

当得到uleft的值时,需要计算uright,可通过uright=uleft+width_texture_ratio得到。

上述地图场景绘制方法,当地图的倾斜角达到预设阈值时,获取地图视野上方区域对应的最大高度和最大宽度,以及场景图像的高度和场景图像的宽度,其中,地图视野上方区域的最大宽度是屏幕显示的最大宽度,根据在场景图像中的宽度比和地图参数确定在场景图像中的截取范围的坐标中宽度对应的第一坐标值,能够避免在图像视野上方区域中的场景图像被拉伸,提高地图场景绘制的逼真度,且根据宽度比和地图参数计算第一坐标值,能加快运算速率。

在一个实施例中,在将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中之后,该地图场景绘制方法还包括:获取电子地图的视野上方区域中像素点的颜色值,以及电子地图的视野下方区域中对应像素点的颜色值;将电子地图的视野上方区域中像素点的颜色值与电子地图的视野下方区域中对应像素点的颜色值混色,得到混色区域。

其中,像素点的颜色值具体可以是rgb值(redgreenblue,红绿蓝)或者hsl(huesaturationlightness,色调、饱和度、亮度)值等不限于此。rgb模式是通过对红、绿、蓝三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色。hsl模式是通过对色相、饱和度、亮度三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色。

具体地,在地图场景绘制程序将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域之后,电子地图的视野上方区域中已包含该图像区域。地图场景绘制程序获取电子地图视野上方区域中像素点的颜色值,以及电子地图的视野下方区域中对应像素点的颜色值。例如,地图场景绘制程序获取电子地图视野上方区域中与视野下方区域之间的交界区域的像素点的颜色值,与电子地图的视野下方区域中与电子地图视野上方区域的交界区域的像素点的颜色值,将电子地图视野上方区域中交界区域的像素点的颜色值与电子地图的视野下方区域中交界区域的像素点的颜色值混色,得到混色区域。如图3至9所示,地图的视野下方区域中有建筑物等,而地图的视野上方区域与视野下方区域之间呈现地平线的渐变效果,使场景更加真实。

由于地图的视野下方区域展示的是三维效果,那么当地图视野下方区域的平面与视野上方区域所在区域重合时,地图场景绘制程序将电子地图视野上方区域中像素点的颜色值与电子地图的视野下方区域中与视野上方区域重合的第一区域的像素点的颜色值混合,得到混色区域。例如建筑物与场景图像进行混色。如图10所示,为一个实施例中混色区域的界面示意图。由图可知,天空场景图像与建筑物融合,呈现渐变的隐约效果,也能表示建筑物的位置距离界面所在视角的位置遥远。

上述地图场景绘制方法,获取电子地图的视野上方区域中像素点的颜色值,以及电子地图的视野下方区域中对应像素点的颜色值,将电子地图的视野上方区域中像素点的颜色值与电子地图的视野下方区域中对应像素点的颜色值混色,得到混色区域,实现场景与地面的无缝融合,实现渐变的场景效果,展示逼真的天际线,提高了地图场景绘制的逼真度。

在一个实施例中,将电子地图的视野上方区域中像素点的颜色值与电子地图的视野下方区域中对应像素点的颜色值混色,包括:根据电子地图的视野上方区域与电子地图的视野下方区域之间的距离确定混色参数;根据混色参数将电子地图的视野上方区域中像素点的颜色值与电子地图的视野下方区域中对应的像素点的颜色值混色。

其中,混色参数用于调节混色效果的参数,具体可以是用于调节比例、透明度等的参数。由于电子地图的视野上方区域和电子地图的视野下方区域在同一个三维场景中,则视野上方区域与视野下方区域之间存在距离。距离可以是通过像素表示,也可以通过经纬度坐标等方式表示。

地图场景绘制程序根据电子地图的视野上方区域与电子地图视野下方区域之间的距离确定混色参数。例如,为呈现更加逼真的场景效果,则视野上方区域与视野下方区域之间的距离越大,则视野上方区域中像素点的颜色值的比重越大,视野下方区域中像素点的颜色值的比重越小;当视野上方区域与视野下方区域之间的距离越小,则视野上方区域中像素点的颜色值的比重越大,视野下方区域中像素点的颜色值比重越大。即,电子地图的视野上方区域与电子地图视野下方区域之间的距离与电子地图视野上方区域中的颜色值的比重呈正相关。

地图场景绘制程序根据混色参数将电子地图的视野上方区域中像素点的颜色值与电子地图视野下方区域中对应的像素点的颜色值混色。即,地图场景绘制程序根据混色参数将与视野上方区域平行的视野下方区域中对应像素点的颜色值混色。

以建筑为例,由于视点位置的不同,一栋建筑通常会在地图中展示两个侧面,称为第一侧面和第二侧面。而这两个侧面并不在空间的同一个平面上。即,第一侧面与视野上方区域之间的距离,与第二侧面与视野上方区域之间的距离不相同。当根据地图的视野上方区域与地图的视野下方区域之间的距离确定混色参数,并根据混色参数进行混色时,能在界面中体现不同距离的层次。同时,在一栋建筑物中不仅仅将与视野上方区域重合的平面混色,且能对整个建筑物进行混色,使得建筑物呈现渐变的混色效果,提高电子地图场景绘制的逼真度。

上述地图场景绘制方法,根据地图的视野上方区域与地图的视野下方区域之间的距离确定混色参数,根据混色参数将电子地图的视野上方区域中像素点的颜色值与电子地图的视野下方区域中对应的像素点的颜色值混色,能根据距离展示不同层次的混色效果,提高电子地图场景绘制的逼真度。

在一个实施例中,该地图场景绘制方法还包括:当截取范围的坐标中的最大坐标值大于场景图像中对应的边界坐标值时,去除最大坐标值的整数部分,将最大坐标值小数部分的坐标值作为截取范围中的对应坐标值。

具体地,当截取范围的坐标中的最大坐标值大于场景图像中对应的边界坐标值时,去除该最大坐标值的整数部分,仅保留最大坐标值的小数部分,将最大坐标值小数部分的坐标值作为截取范围中最大坐标值对应的坐标值。例如,场景图像中边界坐标值为1。当根据地图参数计算得到场景图像已遍历到尽头,即截取范围的坐标为超过1时,例如为(0.9,0)、(0.9,1)、(1.2,0)和(1.2,1),其中大于1坐标值为1.2,那么去掉1.2中的整数部分1,仅保留小数部分,为0.2,坐标替换为(0.2,0)和(0,0.2)。那么截取的场景图像的范围则为(0.9,0)、(0.9,1)、(1,0)和(1,1),以及(0,0)、(0,1)、(0.2,0)和(0.2,1)。

上述地图场景绘制方法,当截取范围的坐标中的最大坐标值大于场景图像中对应的边界坐标值时,去除最大坐标值的整数部分,将最大坐标值小数部分的坐标值作为截取范围中的对应坐标值,能实现场景图像的拼接效果,且不需要存储多张场景图像,能使场景图像随着地图参数的变化而变化,提高地图场景绘制的逼真度,减少系统开销。

在一个实施例中,该地图场景绘制方法还包括:当截取范围的坐标中的最大坐标值大于场景图像中对应的边界坐标值时,去除最大坐标值的整数部分,将最大坐标值小数部分的坐标值作为截取范围中的对应坐标值,且当该边界坐标值的整数部分为奇数时,将场景图像取反。

上述地图场景绘制方法,当截取范围的坐标中的最大坐标值大于场景图像中对应的边界坐标值时,去除最大坐标值的整数部分,将最大坐标值小数部分的坐标值作为截取范围中的对应坐标值,且当该边界坐标值的整数部分为奇数时,将场景图像取反,能使场景图像形成镜像效果。

在一个实施例中,如图11所示,为一个实施例中将图像区域绘制在视野上方区域的流程示意图,获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域,包括:

步骤1102,获取至少两张场景图像,从至少两张场景图像中的每张场景图像中获取截取范围的坐标所形成的图像区域。

其中,该至少两张场景图像可为连续帧的至少两张场景图像。该至少两张场景图像可组成gif(graphicsinterchangeformat,图像互换格式)图片。

具体地,地图场景绘制程序从连续帧的至少两张场景图像中的每张场景图像中均获取截取范围的坐标所形成的图像区域。

将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中,包括:

步骤1104,将每个截取范围的坐标所形成的图像区域按照预设次序排列,得到图像区域序列。

其中,预设次序可以终端预设的次序。例如图像a在第一时间段内展示,图像b在第二时间段内展示。预设次序也可以是该连续帧的至少两张场景图像中已设定的次序,而地图场景绘制程序不对此做修改。

具体地,地图场景绘制程序将每个截取范围的坐标所形成的图像区域按照预设次序排列,得到具有次序的图像区域序列。

步骤1106,将图像区域序列作为一个周期绘制在电子地图的视野上方区域中。

其中,周期对应的时长可根据需要设定。

具体地,图像区域序列可作为一个周期绘制并展示在电子地图的视野上方区域中。当电子地图的界面展示在终端时,该图像区域序列可以滚动绘制并展示。

本实施例中,例如场景图像为含有天空和白云的图像,而为了模仿场景中有风,白云会飘动。那么,地图场景绘制程序获取白云在第一位置的场景图像以及白云在第二位置的场景图像。地图场景绘制程序将白云在第一位置的场景图像在第一时间段内展示,将白云在第二位置的场景图像在第二时间段内展示,形成周期,则可实现动态效果。

本实施例中,该场景图像还可以含有天空与雨滴、天空与雪花、天空与闪电等的场景图像,以实现电子地图视野上方区域的动态效果。

上述地图场景绘制方法,从至少两张场景图像中的每张场景图像中获取截取范围的坐标所形成的图像区域,将每个截取范围的坐标所形成的图像区域按照预设次序排列,得到图像区域序列,将图像区域序列作为一个周期绘制在地图的视野上方区域中,能够实现场景与电子地图的联动,并且实现电子地图视野上方区域的动态效果,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,该地图场景绘制方法还包括:获取天气类型;获取该天气类型对应的场景图像。

其中,天气类型包括、风、云、雾、雨、闪、雪、霜、雷、雹、霾等。天气类型对应的天气场景图像可以存储在终端,也可以存储在服务器。

具体地,天空显示效果可通过服务器,即云端控制。地图场景绘制程序从服务器获取实时天气类型。地图场景绘制程序可从终端查找到天气类型对应的天气场景图像。或者,服务器根据天气类型查找对应的天气场景图像,向终端发送天气场景图像。地图场景绘制程序从服务器直接获取对应的天气场景图像。地图场景绘制程序从天气场景图像中获取截取范围的坐标所形成的图像区域。

本实施例中,以下雪为例,地图场景绘制程序获取实时的天气类型为下小雪,则获取小雪对应的场景图像,从场景图像中获取截取范围的坐标所形成的图像区域,并将该截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中。

本实施例中,地图场景绘制程序可根据时间获取天气类型。例如3月至4月为春天,在这段时间的天气类型为下小雨,则场景图像为下小雨对应的场景图像。地图场景绘制程序获取下小雨对应的场景图像绘制在视野上方区域中。5月至9月为夏天,在这段时间内的天气类型为晴天和下大雨,那么场景图像为晴天对应的场景图像和下大雨对应的场景图像。地图场景绘制程序获取晴天和下大雨对应的场景图像绘制在视野上方区域中。10月为秋季,在这段时间内的天气类型为风,则获取风对应的场景图像绘制在视野上方区域中。11月至2月为冬季,则在这段时间内的天气类型为下雪,场景图像为下雪对应的场景图像。地图场景绘制程序获取下雪对应的场景图像绘制在视野上方区域中。

上述地图场景绘制方法,获取天气类型,获取该天气类型对应的场景图像,从天气场景图像中获取截取范围的坐标所形成的图像区域,能够根据天气类型得到不同的场景图像,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,该地图场景绘制方法包括:获取天气类型,获取天气类型对应的至少两张场景图像,当检测到电子地图发生变化时,获取地图参数,根据地图参数确定在场景图像中的截取范围的坐标,从至少两张场景图像中的每张场景图像中获取截图范围的坐标所形成的图像区域,得到图像区域序列,将图像区域序列作为一个周期绘制在地图的视野上方区域中。上述地图场景绘制方法,能够根据天气类型得到不同的场景图像,并达到动态效果,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,该地图参数包括陀螺仪参数。检测到地图发生变化的方式,包括:当检测到陀螺仪参数发生变化时,确定地图发生变化。

其中,陀螺仪可以是手机陀螺仪,陀螺仪又称为角速度传感器,测量的物理量是偏转、倾斜时的转动角速度等。

具体地,陀螺仪或终端的坐标系可如图2所示。其中,z轴与屏幕相垂直。陀螺仪参数和地图的平移、倾斜和旋转之间的对应关系可依具体情况设置。例如,当检测到陀螺仪绕着x轴旋转时,确定电子地图发生倾斜。当检测到陀螺仪绕着y轴旋转时,确定电子地图发生平移。当检测到陀螺仪绕着z轴旋转时,确定电子地图发生旋转等不限于此。具体的旋转角度、偏移距离和视野上方区域的高度等地图参数可根据与转动角速度之间的关系得到。

上述地图场景绘制方法,当检测到陀螺仪参数发生变化时,确定地图发生变化,能够更方便、灵敏地使用电子地图,提高电子地图的留存率。

在一个实施例中,场景图像为180度的平面场景图像;截取范围的坐标所形成的图像区域的尺寸与电子地图的视野上方区域的尺寸相同;电子地图的视野上方区域与电子地图的视野下方区域相垂直。

具体地,180度的平面场景图像是指电子地图旋转180度,即能够遍历整张平面场景图像。那么,当旋转360度时,则能够遍历两张平面场景图像。电子地图的视野上方区域与电子地图的视野下方区域相垂直可如图2所示,视野上方区域位于xoz平面,电子地图的视野下方区域的底面位于xoy平面。

上述地图场景绘制方法,场景图像为180度的平面场景图像,由于平面场景图像占用的系统开销少,故能够提高绘制效率;截取范围的坐标所形成的图像区域的尺寸与电子地图的视野上方区域的尺寸相同,能提高图像的适配性,避免视野上方区域中出现空白;电子地图的视野上方区域与电子地图的视野下方区域相垂直,能够解决远处的电子地图出现变形和压盖的问题,使地图场景更接近于现实,提高了地图场景绘制的逼真度以及电子地图的展示效率。

在一个实施例中,一种地图场景绘制方法,包括:

步骤(a1),当检测到电子地图发生旋转时,获取地图参数,地图参数包括旋转角度。

步骤(a2),根据旋转角度确定第一坐标值。

步骤(a3),获取电子地图发生旋转前的截取范围的坐标。

步骤(a4),根据第一坐标值以及旋转前的截取范围的坐标确定在场景图像中的截取范围的坐标。

步骤(b1),当检测到电子地图发生平移时,获取地图参数,地图参数包括电子地图中心点的偏移距离。

步骤(b2),根据电子地图中心点的偏移距离确定第一坐标值。

步骤(b3),获取电子地图发生平移前的截取范围的坐标。

步骤(b4),根据第一坐标值和平移前的截取范围的坐标确定在场景图像中的截取范围的坐标。

步骤(c1),当检测到电子地图发生倾斜时,获取地图参数,地图参数包括视野上方区域的高度。

步骤(c2),根据视野上方区域的高度确定第二坐标值。

步骤(c3),获取电子地图发生倾斜前的截取范围的坐标。

步骤(c4),根据第二坐标值以及倾斜前的截取范围的坐标确定在场景图像中的截取范围的坐标。

地图场景绘制程序执行上述步骤(a1)至步骤(a4)、步骤(b1)至步骤(b4)或者步骤(c1)至步骤(c4)后继续执行下述步骤(a5)至步骤(a12)。

步骤(a5),当截取范围的坐标中的最大坐标值大于场景图像中对应的边界坐标值时,去除最大坐标值的整数部分,将最大坐标值小数部分的坐标值作为截取范围中的对应坐标值。

步骤(a6),获取天气类型。

步骤(a7),获取天气类型对应的至少两张场景图像,从至少两张场景图像中的每张场景图像中获取截取范围的坐标所形成的图像区域,其中,场景图像为180度的平面场景图像。

步骤(a8),将每个截取范围的坐标所形成的图像区域按照预设次序排列,得到图像区域序列。

步骤(a9),将图像区域序列作为一个周期绘制在电子地图的视野上方区域中,其中,截取范围的坐标所形成的图像区域的尺寸与电子地图的视野上方区域的尺寸相同。

步骤(a10),获取电子地图的视野上方区域中像素点的颜色值,以及电子地图的视野下方区域中对应像素点的颜色值,其中,电子地图的视野上方区域与电子地图的视野下方区域相垂直。

步骤(a11),根据电子地图的视野上方区域与电子地图的视野下方区域之间的距离确定混色参数。

步骤(a12),根据混色参数将电子地图的视野上方区域中像素点的颜色值与电子地图的视野下方区域中对应的像素点的颜色值混色,得到混色区域。

上述地图场景绘制方法,能在地图发生变化时,在场景图像中的截取范围的坐标发生变化;获取天气类型对应的至少两张场景图像,从至少两张场景图像中的每张场景图像中获取截取范围的坐标所形成的图像区域,将截取范围坐标所形成的图像区域绘制在电子地图的视野上方区域中,能够根据天气类型得到不同的场景图像以及得到动态效果;能通过图像区域遮盖地图中远处的景物,降低系统开销,提升系统性能;且能在当电子地图发生变化时,使电子地图中的场景也随着电子地图而变化,实现场景与电子地图的联动,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

图1和图11为一个实施例中地图场景绘制方法的流程示意图。应该理解的是,虽然图1和图11的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1和图11中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图12所示,为一个实施例中地图场景绘制装置的结构框图,包括第一获取模块1202、确定模块1204、第二获取模块1206和绘制模块1208,其中:

第一获取模块1202,用于当检测到地图发生变化时,获取地图参数;

确定模块1204,用于根据地图参数确定在场景图像中的截取范围的坐标;

第二获取模块1206,用于获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域;

绘制模块1208,用于将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中。

上述场景绘制装置,当检测到电子地图发生变化时,获取地图参数,根据地图参数确定在场景图像中的截取范围的坐标,即地图发生变化时,在场景图像中的截取范围的坐标发生变化;获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域,将截取范围坐标所形成的图像区域绘制在电子地图的视野上方区域中,能通过图像区域遮盖地图中远处的景物,降低系统开销,提升系统性能;且能在当电子地图发生变化时,使电子地图中的场景也随着电子地图而变化,实现场景与电子地图的联动,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,第一获取模块1202用于当检测到电子地图发生旋转时,获取地图参数,地图参数包括旋转角度。确定模块1204用于根据旋转角度确定第一坐标值;获取电子地图发生旋转前的截取范围的坐标;根据第一坐标值以及旋转前的截取范围的坐标确定在场景图像中的截取范围的坐标。

上述地图场景绘制装置,当检测到电子地图发生旋转时,获取电子地图的旋转角度,根据旋转角度确定第一坐标值,获取发生旋转前的截取范围的坐标,根据第一坐标值以及旋转前的截取范围的坐标确定当前在场景图像中截取范围的坐标,当在地图发生旋转时,能使场景图像随着电子地图一起旋转,实现场景与电子地图的联动,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,第一获取模块1202用于当检测到地图发生平移时,获取地图参数,地图参数包括电子地图中心点的偏移距离。确定模块1204用于根据电子地图中心点的偏移距离确定第一坐标值,获取电子地图发生平移前的截取范围的坐标,根据第一坐标值和平移前的截取范围的坐标确定在场景图像中的截取范围的坐标。

上述地图场景绘制装置,当检测到地图发生平移时,获取地图中心点的偏移距离,根据中心点的偏移距离确定第一坐标值,获取电子地图发生平移前的截取范围的坐标,根据第一坐标值和平移前的截取范围的坐标确定在场景图像中的截取范围的坐标,能在当地图发生平移时,使场景图像随着电子地图一起平移,实现场景与电子地图的联动,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,第一获取模块1202用于当检测到电子地图发生倾斜时,获取地图参数,地图参数包括视野上方区域的高度。确定模块1204用于根据视野上方区域的高度确定第二坐标值;获取电子地图发生倾斜前的截取范围的坐标;根据第二坐标值以及倾斜前的截取范围的坐标确定在场景图像中的截取范围的坐标。

上述地图场景绘制装置,当检测到地图发生倾斜时,获取地图中心点的偏移距离,根据视野上方区域的高度确定第二坐标值,获取电子地图发生倾斜前的截取范围的坐标,根据第二坐标值和倾斜前的截取范围的坐标确定在场景图像中的截取范围的坐标,能在当地图发生倾斜时,使场景图像随着电子地图一起倾斜,实现场景与电子地图的联动,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,该地图场景绘制装置还包括转化模块。转化模块用于当地图的倾斜角达到预设阈值时,获取地图视野上方区域对应的最大高度和最大宽度,以及场景图像的高度和场景图像的宽度,其中,地图视野上方区域的最大宽度是屏幕显示的最大宽度;根据视野上方区域对应的最大高度和屏幕显示的最大宽度的比值、场景图像的高度以及场景图像的宽度,将地图视野上方区域对应的最大宽度转化为在场景图像中的宽度比。确定模块1204用于根据在场景图像中的宽度比和地图参数确定在场景图像中的截取范围的坐标中宽度对应的第一坐标值。

上述地图场景绘制装置,当地图的倾斜角达到预设阈值时,获取地图视野上方区域对应的最大高度和最大宽度,以及场景图像的高度和场景图像的宽度,其中,地图视野上方区域的最大宽度是屏幕显示的最大宽度,根据在场景图像中的宽度比和地图参数确定在场景图像中的截取范围的坐标中宽度对应的第一坐标值,能够避免在图像视野上方区域中的场景图像被拉伸,提高地图场景绘制的逼真度,且根据宽度比和地图参数计算第一坐标值,能加快运算速率。

在一个实施例中,第二获取模块1206还用于获取电子地图的视野上方区域中像素点的颜色值,以及电子地图的视野下方区域中对应像素点的颜色值。该地图场景绘制装置还包括混色模块,其中混色模块用于将电子地图的视野上方区域中像素点的颜色值与电子地图的视野下方区域中对应像素点的颜色值混色,得到混色区域。

上述地图场景绘制装置,获取电子地图的视野上方区域中像素点的颜色值,以及电子地图的视野下方区域中对应像素点的颜色值,将电子地图的视野上方区域中像素点的颜色值与电子地图的视野下方区域中对应像素点的颜色值混色,得到混色区域,实现场景与地面的无缝融合,实现渐变的场景效果,展示逼真的天际线,提高了地图场景绘制的逼真度。

在一个实施例中,混色模块用于根据地图的视野上方区域与地图的视野下方区域之间的距离确定混色参数;根据混色参数将电子地图的视野上方区域中像素点的颜色值与电子地图的视野下方区域中对应的像素点的颜色值混色。

上述地图场景绘制装置,根据电子地图的视野上方区域与电子地图的视野下方区域之间的距离确定混色参数,根据混色参数将电子地图的视野上方区域中像素点的颜色值与电子地图的视野下方区域中对应的像素点的颜色值混色,能根据距离展示不同层次的混色效果,提高电子地图场景绘制的逼真度。

在一个实施例中,该地图场景绘制装置还包括重复模块,重复模块用于当截取范围的坐标中的最大坐标值大于场景图像中对应的边界坐标值时,去除最大坐标值的整数部分,将最大坐标值小数部分的坐标值作为截取范围中的对应坐标值。

上述地图场景绘制装置,当截取范围的坐标中的最大坐标值大于场景图像中对应的边界坐标值时,去除最大坐标值的整数部分,将最大坐标值小数部分的坐标值作为截取范围中的对应坐标值,能实现场景图像的拼接效果,且不需要存储多张场景图像,能使场景图像随着地图参数的变化而变化,提高地图场景绘制的逼真度,减少系统开销。

在一个实施例中,该地图场景绘制装置还包括重复模块,重复模块用于当截取范围的坐标中的最大坐标值大于场景图像中对应的边界坐标值时,去除最大坐标值的整数部分,将最大坐标值小数部分的坐标值作为截取范围中的对应坐标值,且当该边界坐标值的整数部分为奇数时,将场景图像取反。

上述地图场景绘制装置,当截取范围的坐标中的最大坐标值大于场景图像中对应的边界坐标值时,去除最大坐标值的整数部分,将最大坐标值小数部分的坐标值作为截取范围中的对应坐标值,且当该边界坐标值的整数部分为奇数时,将场景图像取反,能使场景图像形成镜像效果。

在一个实施例中,第二获取模块1206用于获取至少两张场景图像,从至少两张场景图像中的每张场景图像中获取截取范围的坐标所形成的图像区域;将每个截取范围的坐标所形成的图像区域按照预设次序排列,得到图像区域序列。绘制模块1208用于将图像区域序列作为一个周期绘制在电子地图的视野上方区域中。

上述地图场景绘制装置,从至少两张场景图像中的每张场景图像中获取截取范围的坐标所形成的图像区域,将每个截取范围的坐标所形成的图像区域按照预设次序排列,得到图像区域序列,将图像区域序列作为一个周期绘制在地图的视野上方区域中,能够实现场景与电子地图的联动,并且实现电子地图视野上方区域的动态效果,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,第二获取模块1206还用于获取天气类型,获取该天气类型对应的场景图像。

上述地图场景绘制装置,获取天气类型,获取该天气类型对应的场景图像,从天气场景图像中获取截取范围的坐标所形成的图像区域,能够根据天气类型得到不同的场景图像,使地图场景更接近于现实,提高了地图场景绘制的逼真度。

在一个实施例中,第一获取模块1202用于当检测到陀螺仪参数发生变化时,确定地图发生变化,获取地图参数。

上述地图场景绘制装置,当检测到陀螺仪参数发生变化时,确定地图发生变化,能够更方便、灵敏地使用电子地图,提高电子地图的留存率。

在一个实施例中,场景图像为180度的平面场景图像;截取范围的坐标所形成的图像区域的尺寸与电子地图的视野上方区域的尺寸相同;电子地图的视野上方区域与电子地图的视野下方区域相垂直。

上述地图场景绘制装置,场景图像为180度的平面场景图像,由于平面场景图像占用的系统开销少,故能够提高绘制效率;截取范围的坐标所形成的图像区域的尺寸与电子地图的视野上方区域的尺寸相同,能提高图像的适配性,避免视野上方区域中出现空白;电子地图的视野上方区域与电子地图的视野下方区域相垂直,能够解决远处的电子地图出现变形和压盖的问题,使地图场景更接近于现实,提高了地图场景绘制的逼真度以及电子地图的展示效率。

图13示出了一个实施例中计算机设备的内部结构框图。该计算机设备具体可以是终端或服务器。如图13所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现地图场景绘制方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行地图场景绘制方法。

本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的地图场景绘制装置可以实现为一种计算机程序的形式,计算机程序可在如图13所示的计算机设备上运行。计算机设备的存储器中可存储组成该地图场景绘制装置的各个程序模块,比如,图12所示的第一获取模块、确定模块、第二获取模块和绘制模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的地图场景绘制方法中的步骤。

例如,图13所示的计算机设备可以通过如图12所示的地图场景绘制装置中的第一获取模块执行当检测到地图发生变化时,获取地图参数。计算机设备可通过确定模块执行根据地图参数确定在场景图像中的截取范围的坐标。计算机设备可通过第二获取模块执行获取场景图像,从场景图像中获取截取范围的坐标所形成的图像区域。计算机设备可通过绘制模块执行将截取范围的坐标所形成的图像区域绘制在电子地图的视野上方区域中。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述地图场景绘制方法的步骤。此处地图场景绘制方法的步骤可以是上述各个实施例的地图场景绘制方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述地图场景绘制方法的步骤。此处地图场景绘制方法的步骤可以是上述各个实施例的地图场景绘制方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1