CN115268805A - 地图显示方法和装置 - Google Patents
地图显示方法和装置 Download PDFInfo
- Publication number
- CN115268805A CN115268805A CN202110472684.5A CN202110472684A CN115268805A CN 115268805 A CN115268805 A CN 115268805A CN 202110472684 A CN202110472684 A CN 202110472684A CN 115268805 A CN115268805 A CN 115268805A
- Authority
- CN
- China
- Prior art keywords
- sky
- map
- texture
- angle
- camera
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000009877 rendering Methods 0.000 claims abstract description 23
- 230000000694 effects Effects 0.000 claims abstract description 16
- 230000000007 visual effect Effects 0.000 claims abstract description 14
- 238000003860 storage Methods 0.000 claims description 20
- 238000005520 cutting process Methods 0.000 claims description 11
- 230000004044 response Effects 0.000 claims description 7
- 230000036961 partial effect Effects 0.000 description 28
- 230000008859 change Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010191 image analysis Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Graphics (AREA)
- Human Computer Interaction (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Instructional Devices (AREA)
- Processing Or Creating Images (AREA)
Abstract
公开了一种地图显示方法和装置。获取天空纹理;确定视野范围内待显示电子地图的地图渲染数据;基于待显示电子地图的方位角和地图相机的横向张角,从天空纹理中,确定局部天空纹理;根据地图渲染数据、局部天空纹理和地图显示参数,显示带有天空效果的电子地图。由此,能够在显示电子地图时,方便而又逼真地模拟显示天空图案。
Description
技术领域
本公开涉及电子地图,特别涉及电子地图的显示方案。
背景技术
电子地图的二维视角(即,平面/二维地图)相当于用户的俯视角度(下文简称为俯角)为90度,即,垂直直视地面,此时地面上的地理要素会充满整个屏幕;而三维视角(即,立体/三维地图),相当于俯角小于90度。当俯角比较小的时候,用户会看到更远处的地面,如果严格照相机视野显示地面上的地理要素,需要地图渲染引擎加载大量远处地面所对应的地图渲染数据。但在地图导航场景或者地图浏览场景,用户并不关心过于距离自己较远处的地理要素,加载和显示大量地图渲染数据也会浪费设备性能。为解决该问题,一种方案是,不再显示远处地面上的地理要素,而远处地面上的地理要素一般会显示在屏幕上方,不再显示后屏幕上方会出现空白区域,空白区域用来显示天空,既避免了加载不必要的地图渲染数据,也增加了地图的真实感。
现有技术,通过在地图上方显示静态图片的方式实现天空效果,但是静态图片不能随着电子地图视野的变化而变化,也不宜显示日月星辰等内容,导致地图还原现实世界的真实感不足。
因此,仍然需要一种显示效果更接近自然场景的电子地图显示方案,其能够方便而又逼真地显示天空图案(或称为“天空纹理”)。
发明内容
本公开要解决的一个技术问题是提供一种地图显示方案,其能够方便而又逼真地模拟显示天空图案。
根据本公开的第一个方面,提供了一种地图显示方法,包括:获取天空纹理;确定视野范围内待显示电子地图的地图渲染数据;基于待显示电子地图的方位角和地图相机的横向张角,从天空纹理中,确定局部天空纹理;根据地图渲染数据、局部天空纹理和地图显示参数,显示带有天空效果的电子地图。
可选地,基于待显示电子地图的方位角和地图相机的横向张角,从天空纹理中,确定与视野范围对应的局部天空纹理,包括:基于待显示电子地图的方位角,确定局部天空纹理的中心线在天空纹理中对应的位置;基于地图相机的横向张角,确定局部天空纹理的裁剪长度;从中心线在天空纹理中对应的位置,沿天空纹理的长边按裁剪长度进行裁剪,以得到局部天空纹理。
可选地,天空纹理为矩形图,则天空相机的裁剪面平行于天空纹理,天空相机的位置随方位角的变化而变化。
可选地,天空纹理为环状图,天空相机的横向张角等于地图相机的横向张角,天空相机的旋转角随着方位角的变化而变化。
可选地,该方法还包括:视野范围的中心线与局部天空纹理的中心线重合。
可选地,该方法还包括:响应于电子地图的缩放指令,获取与相应电子地图比例尺对应的地图相机的横向张角。
可选地,地图显示参数包括:三维地图的俯仰角,俯仰角用于确定局部天空纹理的纵向显示范围。
根据本公开的第二个方面,提供了一种地图显示装置,包括纹理获取装置,用于获取天空纹理;地图确定装置,用于确定视野范围内待显示电子地图的地图渲染数据;纹理确定装置,用于基于待显示电子地图的方位角和地图相机的横向张角,从所述天空纹理中,确定局部天空纹理;显示装置,用于根据所述地图渲染数据、所述局部天空纹理和地图显示参数,显示带有天空效果的电子地图。
根据本公开的第三个方面,提供了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被处理器执行时,使处理器执行如上述第一方面所述的方法。
根据本公开的第四个方面,提供了一种非暂时性机器可读存储介质,其上存储有可执行代码,当可执行代码被电子设备的处理器执行时,使处理器执行如上述第一方面所述的方法。
由此,能够在显示电子地图的时候,方便而又逼真地模拟显示天空图案。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是根据本公开的地图显示装置的示意性框图。
图2是根据本公开的地图显示方法的示意性流程图。
图3是水平长条状天空纹理被划分为多个部分的示意图。
图4是图3所示多个部分在竖直方向上叠放得到的天空纹理资源图的示意图。
图5是可基于图4所示天空纹理资源图获得的用于本公开地图显示方案的天空纹理示意图。
图6、图7是采用虚拟天空相机在天空纹理上获取要显示的部分天空纹理的示意图。
图8是添加了部分天空纹理的地图显示示意图。
图9示出了根据本发明一实施例可用于实现上述地图显示方法的计算设备的结构示意图。
图10是地图查看模式下添加了天空纹理的地图显示界面截图。
图11是导航模式下添加了天空纹理的地图显示界面截图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
为了在电子地图中显示天空图案,可以提出多种可能的方案。
一种可能的方案是,在屏幕中地图上方添加一张静态的天空图像作为天空图案。然而,当地图视角变化,如地图随观察角(视角)变化而旋转的时候,静态的天空图案并不相应变化(旋转),天空图案与地图割裂开来,与自然场景不符。
另一种可能的方案是,在屏幕上方添加一张横向纹理不变的天空图案。这样,在地图视角变化过程中具有不变性。然而,这样的天空图案过于单调,无法不像自然的天空。另外,也不可能在天空图案中绘制太阳、月亮等星体或其它飞行物的图案。
还有一种可能的方案是,设计一张左右纹理连续的图像作为天空图案。即,天空图案的左侧与右侧接续连接,或称为“二方连续”。当把天空图案沿着长边(横向)卷曲,将左右两侧衔接起来,可以形成一个图案连续的“环状天空”图案。这样,当地图视角变化时,天空纹理可以跟着左右循环移动。然而,呈现地图对应的视野范围一般小于180°,在地图视角从0°到360°变化的过程中,同样的天空图案会呈现至少两次,即在不同的视角下会看到相同的天空图案。天空图案仍然太单调以至于不能与自然场景相符。另外,由于图案与水平方位角不对应,甚至图案一个位置会对应于两个或更多个水平方位角,所以同样也不可能在天空图案中绘制具有特定方位的太阳、月亮等星体或其它飞行物的图案。
本公开提出一种适合电子地图视角的360°全景天空的制作方式,制作简单,而效果逼真。
在本公开的上下文中,“纹理”也可以称为“图案”,“天空纹理”则是表示用于表示天空的图案或纹理,其上可以包括有深蓝或浅蓝色的天空的图像,白色、彩色或乌黑的云的图像,风、雨、雪、冰雹、闪电、等天气现象的图像,等等。
360°全景天空是指,环绕着虚拟相机(观察者视角)水平360°无缝连接的天空图案,随着相机偏航角的改动而旋转,就如同现实中的天空一样。
这里,可以认为地图是以假设使用虚拟相机(也可以是称为“虚拟地图相机”)在设定观察点以设定视角和视野范围来拍摄地面图像的方式来显示的。
偏航角是指,虚拟相机的视线(视角或视野范围中心线)在地面(水平面)上的投影(水平视角)与预定方向例如正北方向的夹角。在本公开的上下文中,偏航角也可以称为“方位角”或“水平方位角”。一般地,偏航角或方位角的范围是0°至360°。
另外,在电子地图显示方案中,还可以考虑地图俯视角。地图俯视角是指,虚拟相机视线(视角或视野范围中心线)与虚拟相机正前方的水平射线的夹角。
当俯视角为90°时,是地图的二维视角,虚拟相机垂直直视地面,即二维平面图模式。
当俯视角小于90°时,是地图的三维视角,即三维俯视图模式,可以看到更远处的地图元素。
与较大俯视角特别是90°俯视角相比,当俯视角比较小的时候,会看到更远处的地面。
此时,如果在真实自然场景,往往会观察到天空。这样,例如可以在比例尺比较大(即同样大小的显示区域中所显示实际物理范围比较小)而俯视角比较小的时候,在三维视角中显示天空。这里,可以预先设定启动天空图案显示的比例尺阈值和/或俯视角阈值和/或比例尺与俯视角间的预定关系,即比例尺大于比例尺阈值、俯视角小于俯视角阈值,或比例尺与俯视角之间满足预定关系时,启动天空图案的显示。
实际上,由于地图相当于一个无限大的平面,而虚拟相机的垂直方向张角大小有限,这种俯视的三维视角下,虚拟相机观测到的往往全都是地图,而看不到天空。
本公开的地图显示方案通过在屏幕中地图显示区域中地图上方添加天空图案,在天空图案与地面地图的交界形成“地平线”。
这样,可以造成一种地图上的地面和真实的地球表面一样是曲面的逼真效果。
进一步地,还可以避免加载过多过远处地图元素对应的图块。一方面,特别是俯视角较小时,理论上地图上应当呈现非常远距离范围内的地图元素,绘制大量元素图块,对资源消耗太大。而另一方面,地图查看者通常也对太远处的地图元素并不感兴趣。加载显示这些图块需要消耗大量资源却并没有很大的实际意义。
地图世界和模拟现实的游戏世界中的视角有所区别。在地图世界中,用户不会“抬头”向上看天空,一般也不会有翻滚角旋转,因此,所显示(或观察到)的天空的形状是相对比较固定的,基本上可以认为一直是矩形区域。与游戏世界相比,地图世界的天空模式相对较为单一。基于这个特点,本公开的地图显示方案能够方便而又逼真地模拟显示天空图案。
下面,详细描述根据本公开的地图显示方案。
图1是根据本公开的地图显示装置的示意性框图。
如图1所示,根据本公开的地图显示装置例如可以包括纹理获取装置110、地图确定装置120、纹理确定装置130和显示装置140。
纹理获取装置110用于获取天空纹理。
地图确定装置120用于确定视野范围内待显示电子地图的地图渲染数据。
纹理确定装置130用于基于待显示电子地图的方位角和地图相机的横向张角,从天空纹理中,确定局部天空纹理。
显示装置140用于根据地图渲染数据、局部天空纹理和地图显示参数,显示带有天空效果的电子地图。
下面,参考图2,进一步详细描述根据本公开的地图显示方法。
图2是根据本公开的地图显示方法的示意性流程图。
本公开的地图显示方法应用于三维地图显示。
如图2所示,在步骤S210,获取天空纹理。获取的天空纹理可以预存在存储器上。
天空纹理在横向上的不同位置可以分别对应于水平面上的不同方位角。
另一方面,天空纹理在纵向上的不同位置可以分别对应于天空不同俯仰角位置,或天空不同高度位置。
例如,可以准备一张矩形长条状(横向/水平方向长,纵向/竖直方向窄)的360°全景天空的纹理。
在本公开的上下文中,天空纹理的左右方向、长度方向、横向、水平方向可以表示相同的含义。同样地,天空纹理的上下方向、高度方向、纵向、竖直方向可以表示相同的含义。
例如,天空纹理包括对应于0°至360°方位角的天空纹理,天空纹理横向各像素分别对应于0°至360°方位角中相应的方位角。
0°与360°方位角具有相同的天空纹理。
换言之,天空纹理的长度方向(横向/水平方向)对应于360°的旋转。天空纹理左右两侧尽头的图案是连续衔接的。想象将天空纹理沿着长边方向(横向/水平方向)卷曲,将左右两侧尽头衔接起来,则可以形成一个图案连续的“环状天空”。
通过使0°与360°方位角具有相同的天空纹理,当观察视角水平投影(偏航角)旋转一周后,会显示与旋转前相同的天空纹理。
另外,天空纹理也可以包括对应于大于360°视角范围的天空纹理,从而在水平视角方向旋转360°之后,呈现与旋转前不同的天空纹理。
例如,天空纹理可以包括相当于720°、1080°或更大方位角范围的天空纹理。或者,方位角范围也可以不是360°或180°的整数倍。
这样,在转动过程中,可以呈现不同的天空纹理,增加地图显示方案的丰富性,进一步提升用户体验。
另外,在步骤S230中确定局部天空纹理时,例如使用虚拟的天空相机(滑动显示窗口)在天空纹理上滑动以获取显示范围内的部分天空纹理,以在地图上方显示。为了避免天空纹理的显示范围(显示窗口)在整个天空纹理上平移而滑出天空纹理的左右(横向/水平)范围,导致所显示的天空纹理出现缺漏,可以在天空纹理的左右两端各补充一段(例如天空纹理左右方向上相当于全长四分之一的)冗余纹理。四分之一对应于90°水平方向张角,是足够的,因为视野范围水平张角一定是小于180°的,而冗余纹理只要大于或等于(优选大于)视野范围水平张角的一半即可。
这样,天空纹理除了包括例如对应于0°至360°(或720°,或其它角度)方位角的基本部分,还可以进一步包括左侧扩展部分和右侧扩展部分。左侧扩展部分和右侧扩展部分各自对应的方位角范围大于或等于视野范围(水平方向张角)的一半。
左侧扩展部分可以与基本部分的右侧部分相同,而右侧扩展部分可以与基本部分的左侧部分相同。
换言之,基本部分两侧接续连接,自身可以构成完整的360°全景天空图案,而左侧扩展部分和右侧扩展部分则是基本部分的对侧相应部分。
举例说来,左侧扩展部分,例如可以称为-90°至0°方位角范围,可以与270°至360°方位角范围对应的纹理/图案相同。同样地,右侧扩展部分,例如可以称为360°至450°方位角范围,可以与0°至90°方位角范围对应的纹理/图案相同。
这样,当在天空相机的显示范围(显示窗口)左右平移滑出天空纹理的左右边界(0°或360°)时,仍然可以在地图上方自然顺畅地显示天空纹理,而不会出现天空纹理缺漏。另一方面,如果天空相机的显示范围(显示窗口)继续朝天空纹理0°或360°方位角外侧平移,则可以在恰当的时机将天空相机的显示范围(显示窗口)切换到基本部分中相对应的范围,例如,当向左侧平移滑出天空纹理基本部分的左侧边界(0°)时,可以切换到当前对应方位角范围上下限各加360°的方位角范围;当向右侧平移滑出天空纹理基本部分的左侧边界(0°)时,可以切换到当前对应方位角范围上下限各加360°的方位角范围。
另外,由于电子地图的重点还是地图本身,观察视角的俯视角也不会太小,更不会变成仰视天空(视线方向朝上),因此,所需要显示的天空纹理的高度或纵向尺寸不需要太高。
而另一方面,因为需要提供环周360°甚至更大范围的天空纹理,所以所准备的天空纹理资源的左右长度方向或横向尺寸会比较大,某些设备因硬件性能影响无法存储一张完整的天空纹理,这时需要对天空纹理做切割,将天空纹理横向分割为N个部分,然后将这N个部分分别存储,形成用于保存和/或传输的天空纹理资源。这里,N为大于1的整数。
然后,在后续步骤S230中确定局部天空纹理时,需要将天空纹理资源沿横向重新组合为完整的天空纹理。
在将天空纹理资源沿横向重新组合为完整的天空纹理时,可以沿纵向将天空纹理资源切割为N个部分,再沿横向重新排布组合这N个部分,就可以得到所需的天空纹理。
这里,在天空纹理资源中,可以仅包括将天空纹理的上述基本部分分割得到的N个部分。在后续基于天空纹理资源纵向切割横向排列时,将两侧的部分分别复制到相反另一侧,即左侧第一部分复制到右侧最后一部分之后,右侧最后一部分复制到左侧第一部分之前,即可得到如上文所述包括左侧扩展部分和右侧扩展部分的天空纹理。
或者,也可以直接在天空纹理资源的纵向叠放的N个部分中包括左侧和右侧扩展部分,即其中第2至第N-1共N-2个部分是从基本部分分割出来的,上下两侧的第1个和第N个部分分别是天空纹理的基本部分(水平排列状态下)最右和最左两个部分(纵向叠放状态下,从基本部分分割出的N-2个部分中,叠放在天空纹理资源中最下和最上的两个部分,也即第N-1个部分和第2个部分)。
例如,可以将图3所示长为8192像素、高为256像素的天空纹理沿横向切成四段P1、P2、P3、P4,每段都是长为2048像素、高为256像素。每段分别对应于90°方位角范围的天空,第一段P1的最左侧与第四段P4的最右侧能够接续连接,从而可以得到360°全景天空纹理。
然后,按原顺序重新纵向叠放在一张长为2048、高为1024的天空纹理资源中,如图4所示。
在图4中,P1位于最上方,P4位于最下方。应当理解,上下叠放顺序反过来也是可以的。或者,在记录相应叠放顺序的情况下,不按从P1到P4的原顺序来叠放也是可以的。
这样,例如,纵向叠放得到的天空纹理资源中最上面一段可以对应于天空纹理(基本部分)的左侧第一部分,然后下面各段依次为从左侧起第二、三、四段。或者,顺序也可以相反。
在后续步骤S240中,渲染引擎绘制显示带有天空效果的电子地图的时候,再把上述天空纹理上下切割成4段,左右排布成长条,然后将第四段P4复制到第一段P1之前,将第一段P1复制到第四段P4之后,即可得到横向长条状天空纹理,如图5所示。
天空纹理可以是预先从服务器下载的。或者,也可以现场实时通过360°相机实拍而得到。
然后,返回图2,在步骤S220,确定视野范围内待显示电子地图的地图渲染数据。
视野范围可以等于屏幕显示范围。屏幕显示范围可以是全屏,也可以是部分屏幕。
待显示电子地图的范围,可以取决于用户的位置或用户设置,并且还可以与地图比例尺相关。例如,待显示电子地图可以是用户当前位置附近一定地理范围内的区域,该区域的大小可以与地图比例尺负相关,即地图比例尺越大,待显示电子地图的范围越小(精度越高)。再例如,待显示电子地图还可以是用户指定位置附近一定地理范围内的区域,该区域的大小同样可以与地图比例尺负相关。
待显示电子地图的地图渲染数据可以与具体应用场景相关。即在不同应用场景下,同一视野范围内待显示电子地图的地图渲染数据可以是不同的。例如,导航场景和巡航场景下的地图渲染策略是不同的。
因此,在确定了待显示电子地图的范围后,可以根据当前场景确定具体的地图渲染数据。
可以基于设定观察点确定视野范围内的地图,作为待显示电子地图。
设定观察点可以对应于当前实际位置,也可以对应于用户对电子地图进行交互操作时所确定的位置或者是用户的定位位置在电子地图上对应的位置。
或者,设定观察点位于地图上当前实际位置或基于交互操作所确定位置或定位位置(相对于视线方向的)后方偏上。换言之,可以认为,所显示的地图相当于,以当前实际位置或基于交互操作所确定位置或定位位置为关注焦点,从后方上部俯视观察地图,以了解该位置周边特别是(视线方向)前方的地图场景。
并且,例如在导航场景下,设定观察点会随着设备的运动而变化。
视野范围可以从水平方向范围和竖直方向范围两方面来描述。
视野范围中心线可以对应于观察点出发的视线,或者也可以称为视角。
在步骤S230,基于待显示电子地图的方位角和地图相机的横向张角,从天空纹理中,确定局部天空纹理。
视野范围的中心线可以与局部天空纹理的中心线重合。
局部天空纹理的确定取决于两个因素。
一个是待显示电子地图的偏航角(即方位角),决定了屏幕纵向中线对应于天空纹理的位置(相应对应于天空纹理横向方向对应的水平方位角)。例如,可以在天空纹理的某处绘制初升的太阳,那么当(以正北方向为0°方位角)偏航角为90°时(对应于正东方向),可以令屏幕中天空区域的左右平分线对应着太阳图案。
另一个是虚拟地图相机的横向张角,决定了天空区域应该显示多大部分的天空纹理。例如,虚拟地图相机的横向张角为40°,那么可以在横向上显示九分之一的纹理(40/360=1/9)。
换言之,天空纹理横向上各个位置可以分别对应于0°至360°不同的方位角。
确定视野范围中心线对应的中心方位角,于是可以相应确定要截取的部分天空纹理的中心位置。一般地,可以将部分天空纹理的中心位置对应的方位角设为与视野范围中心线对应的中心方位角相同。
然后,再确定视野范围的大小。这里,视野范围可以包括虚拟天空相机的天空视野范围和虚拟地图相机的地图视野范围。可以将虚拟天空相机的天空视野范围的水平方向范围设置为与虚拟地图相机的地图视野范围的水平方向范围大小相同。这样,天空视野范围和地图视野范围在地平线处结合,得到整个视野范围。
于是,可以基于视野范围中心线对应的中心方位角和视野范围的大小,特别是水平方向范围的大小,确定部分天空纹理在天空纹理中的横向范围。
随着观察点的改变,可以调整视野范围,并相应调整部分天空纹理在天空纹理中的范围,以便使远处地平线处地图边缘部分移动时天空纹理也相应移动变化,使得所显示的天空纹理与地图上方边缘部分之间没有或基本上没有相对运动。即,使得所截取的局部天空纹理(也即所显示的部分天空纹理)下边缘与地图上边缘在纵向上相对应的位置保持基本上对应于相同的方位角。
作为示例,可以基于待显示电子地图的方位角,确定局部天空纹理的中心线在天空纹理中对应的位置;基于地图相机的横向张角,确定局部天空纹理的裁剪长度;从中心线在天空纹理中对应的位置,沿天空纹理的长边按裁剪长度进行裁剪,以得到局部天空纹理。
如图6所示,天空纹理可以为长条状,如矩形图。天空相机的裁剪面可以平行于天空纹理,天空相机的位置随方位角的变化而变化。
虚拟天空相机630在长条状天空纹理600上直视拍摄部分天空纹理610。这相当于从整个天空纹理600上,通过滑动窗口620(对应于虚拟天空相机630的拍摄范围)截取对应于视野范围的部分天空纹理610,得到局部天空纹理,滑动窗口620可以视为天空相机的裁剪面。
如图7所示,天空纹理也可以为环状图,天空相机730的横向张角等于地图相机的横向张角,天空相机730的旋转角随着方位角的变化而变化。其中,虚线框表示设备屏幕。在确定局部天空纹理是,天空相机730可以旋转到与待显示电子地图的方位角一致的角度,并按照地图相机的横向张角在环状天空纹理700上拍摄部分天空纹理710,得到局部天空纹理。
地图相机的横向张角与地图的比例尺对应。一个比例尺对应一个设定值。响应于电子地图的缩放指令,还可以获取与相应电子地图比例尺对应的地图相机的横向张角。例如,比例尺从1:50变化为1:100,则要获取1:100对应的横向张角。
在步骤S240,根据地图渲染数据、局部天空纹理和地图显示参数,显示带有天空效果的电子地图。
地图显示参数可以包括三维地图的俯仰角,俯仰角用于确定局部天空纹理的纵向显示范围。
为了使得所显示的带有天空效果的电子地图更为逼真,局部天空纹理下边缘与地图上边缘在纵向上相对应的位置基本上对应于相同的方位角。
图8是添加了部分天空纹理的地图显示示意图。其中,在所绘制显示的地图810上方,添加了局部天空纹理820,得到带有天空纹理显示的地图显示图案800。局部天空纹理820下边缘与地图810上边缘在纵向上相对应的位置(同一条纵向直线上的点)基本上对应于相同的方位角(水平方向)。
为便于理解,可以想象虚拟地图相机,从空中设定观察点,按设定的视角和视野范围来拍摄地面。这样,可以基于地图数据,确定在视野范围内将出现的地图元素,例如建筑物、道路等,并在相应位置处绘制这些地图元素可以得到要显示的地图810。
以天空纹理为图6所示的长条状为例,同样地,可以想象虚拟天空相机(可以独立于地图世界的虚拟地图相机)直视着长条状天空纹理,其远近裁剪面可以平行于天空纹理。同样地,可以随着视野范围中心线方向(也即视线方向或水平视角方向)的改变(转向),调整视野范围,并相应调整部分天空纹理在天空纹理中的范围,以便使远处地平线处地图边缘部分移动(相当于水平转向)时天空纹理也相应移动(相当于水平转向)变化,使得所显示的天空纹理与地图上方边缘部分之间没有或基本上没有相对运动。即,使得所截取的部分天空纹理610(也即所显示的部分天空纹理820)下边缘与地图810上边缘在纵向上相对应的位置保持基本上对应于相同的方位角。
更形象地讲,可以认为虚拟天空相机630与虚拟地图相机相对位置关系固定,虚拟地图相机移动或转动时,虚拟天空相机630也相应移动或转动。由此,虚拟天空相机630可以随着地图偏航角(视野范围中心方位角)改变而左右移动。换言之,可以随着所显示地图810的中心线对应方向(方位角)改变而左右移动,从而移动变化所显示的部分天空纹理820,也即从整个长条状天空纹理600中所截取的部分天空纹理610。
另外,视野大小可以调整,比如从全屏显示调整为局部显示,或者局部显示调整为全屏显示。这样,响应于视野范围调整指令,可以基于调整后的视野范围的大小,调整部分天空纹理在天空纹理中的范围。
一些实施例中,可以设定所显示天空纹理的高度范围不变。这样,截取天空纹理时,横向截取部分天空纹理的同时,可以在纵向上可以截取整个纵向范围内的天空纹理。
在另一些实施例中,天空纹理的高度范围也可以变化,这样,滑动窗口620在长条状天空纹理600上滑动之外,还可以缩放,水平方向(横向)范围和竖直方向(纵向)范围均可以相应变化。
另外,在以三维俯视图的形式显示地图的情况下,还可以响应于三维俯视图的俯仰角变化,调整部分天空纹理在纵向上的显示范围。
也就是说,当视角向上移动时,在纵向上增大部分天空纹理的显示范围,当视角向下移动时,则在纵向上减小部分天空纹理的显示范围。
另外,例如还可以响应于显示设备例如左右方向上的倾斜,生成滚转指令。
响应于滚转指令,可以使地图810和部分天空纹理820向相同方向同步倾斜相同的滚转角,从而使得地图的上边缘和部分天空纹理的下边缘(地平线)与显示屏横向方向的夹角为该滚转角。滚转指令可以携带有滚转角,滚转角可以设置为与设备倾斜角度相同。
这里,地图和部分之天空纹理的倾斜方向可以设置为与显示设备的倾斜方向相反。这样,地图的上边缘和部分天空纹理的下边缘(地平线)仍然保持“水平”(即在初始状态下显示设备横向平行于实际的水平面的情况下,设备倾斜后,地平线可以仍然保持平行于实际的水平面)。
这样,虚拟天空相机可以相当于缩放矩阵、平移矩阵、旋转矩阵中一个或多个的乘积。
缩放矩阵使得天空区域显示正确大小的部分天空纹理820。
平移矩阵使得部分天空纹理820的下方对应于“地平线”并且天空区域的横向中心对应着地图810的偏航角。也即,使得部分天空纹理820下边缘与地图810上边缘在纵向上相对应的位置基本上对应于相同的方位角。
旋转矩阵则例如随着设备的水平方向旋转,可以保持“地平线”相对于实际“水平方向”的方向不变(保持平行)。
一般地,可以认为,例如在观察点沿着一条直线(一个方位角)移动时,远处地平线上各处相对于观察点的方位角变化不大。这样,视野范围中心方位角不变,视野范围大小也不变,所以部分天空纹理可以不用变化。
然而,在考虑更加精细的情况下,例如在显示中,即使视角方向不变,视野范围大小不变,远处进入视野范围的天空元素图像也会发生变化。正前方的天空图像会放大,而后方的天空元素图像会缩小,左右的天空元素图像则会向后移动。
这样,在一些实施例中,可以随着观察点的移动,对天空纹理600进行横向拉伸和/或压缩,以使得所显示部分天空纹理820下边缘和地图810上边缘在上一时刻相对应的位置在下一时刻仍然对应于相同的方位角。由此,可以避免天空纹理下边缘与地图上边缘之间明显的相对移动。
另外,为了使地平线附近的天地图案过渡更加柔和,可以在所显示部分天空纹理820的下方添加一定高度的半透明带,然后将所显示部分天空纹理820向地平线以下平移一小段距离,使得地平线附近产生透明渐变的效果。
更一般地,可以使部分天空纹理820的下部与地图810的上部部分重叠。
可以使部分天空纹理820的下部重叠部分位于上层(地图810之上),并且设置为半透明。由此,透过部分天空纹理820下部,可以隐约看到地图810上部。实现天地图案之间的柔和过渡。
或者,也可以使地图810的上部重叠部分位于上层(所显示部分天空纹理820之上),并且设置为半透明。由此,透过地图810上部,可以隐约看到部分天空纹理820下部。实现天地图案之间的柔和过渡。
另外,还可以在天空纹理600上添加太阳、月亮、行星、北极星、北斗星、彗星等星体的图案,或者添加飞机、热气球等飞行物的图案。
可以根据当前时间或设定时间(例如模拟某一时刻的地图导航模式),或者,也可以根据实际观测结果(例如拍摄成像,然后进行图像分析得到观测结果),确定这些星体或飞行物所处的方位角和/或俯仰角。
于是,可以在天空纹理600中对应于相应方位角和/或相应俯仰角的位置添加星体图案和/或飞行物图案。
另外,还可以根据设置或实时感测得到的天气信息,在天空纹理600中添加深蓝或浅蓝色的天空的图像,白色、彩色或乌黑的云的图像,风、雨、雪、冰雹、闪电、等天气现象的图像,等等。
或者,也可以根据设置或实时感测得到的天气信息,调用对应于不同天气状况的天空纹理600。例如,可以准备对应于不同天气状况的多个天空纹理600(或天空纹理资源)。更进一步地,可以基于同一个基础天空纹理600,添加相应天气元素,得到同一个系列下对应于不同天气状况的多个天气纹理600。
另外,还可以根据当前时间或设定时间来调整天空纹理600的亮度,或准备对应于不同时间或不同亮度的多个天空纹理600。或者,可以基于同一个基础天空纹理600,设置同一个系列下对应于不同时间或不同亮度的多个天气纹理600。
在本公开的一个实施例中,地图显示方法可以包括:准备天空纹理,所述天空纹理在横向上的不同位置分别对应于水平面上的不同方位角;基于设定观察点显示视野范围内的地图;在地图上方显示所述天空纹理中对应于视野范围的部分天空纹理,使得所述部分天空纹理下边缘与地图上边缘在纵向上相对应的位置基本上对应于相同的方位角。关于方法涉及的细节及可以参见上文结合图2的相关描述。
图9示出了根据本发明一实施例可用于实现上述地图显示方法的计算设备的结构示意图。
参见图9,计算设备900包括存储器910和处理器920。
处理器920可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器920可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器920可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器910可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器920或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器910可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器910可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器910上存储有可执行代码,当可执行代码被处理器920处理时,可以使处理器920执行上文述及的地图显示方法。
图10是地图查看模式下添加了天空纹理的地图显示界面截图。
图11是导航模式下添加了天空纹理的地图显示界面截图。
如图10和11所示,在三维俯视图方式显示的地图上方添加了天空纹理。图10视线方向朝北,图11视线方向朝西。不同方向上显示了不同的天空纹理(部分天空纹理)。天空纹理与地图纹理结合非常自然,效果非常逼真,提供了令人感觉非常舒适的显示效果。
在一些实施例中,可以更逼真地模拟真实天空:天空可以沿水平方向360°旋转;可以绘制日月星辰;天空纹理的方向与东南西北方向可以是准确对应的。
在电子地图的视野中,仅使用一张长条状的天空纹理就可以模拟完整的360°全景天空。
根据相机偏航角(视野范围中心线对应的方位角)和张角(视野范围大小)来计算天空纹理的位置(对应方位角)和尺寸,使得所显示的天空纹理和现实中的东南西北准确对应,并由此可以正确地绘制日月星辰。
上文中已经参考附图详细描述了根据本发明的地图显示方案。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种地图显示方法,其中,应用于三维地图显示,包括:
获取天空纹理;
确定视野范围内待显示电子地图的地图渲染数据;
基于待显示电子地图的方位角和地图相机的横向张角,从所述天空纹理中,确定局部天空纹理;
根据所述地图渲染数据、所述局部天空纹理和地图显示参数,显示带有天空效果的电子地图。
2.根据权利要求1所述的方法,其中,基于待显示电子地图的方位角和地图相机的横向张角,从所述天空纹理中,确定与所述视野范围对应的局部天空纹理,包括:
基于待显示电子地图的方位角,确定局部天空纹理的中心线在天空纹理中对应的位置;
基于地图相机的横向张角,确定局部天空纹理的裁剪长度;
从所述中心线在所述天空纹理中对应的位置,沿所述天空纹理的长边按所述裁剪长度进行裁剪,以得到局部天空纹理。
3.根据权利要求2所述的方法,其中,所述天空纹理为矩形图,则天空相机的裁剪面平行于所述天空纹理,天空相机的位置随方位角的变化而变化。
4.根据权利要求2所述的方法,其中,所述天空纹理为环状图,所述天空相机的横向张角等于所述地图相机的横向张角,天空相机的旋转角随着方位角的变化而变化。
5.根据权利要求2-4中任意一项权利要求所述的方法,还包括:
所述视野范围的中心线与局部天空纹理的中心线重合。
6.根据权利要求1-4中任一项权利要求所述的方法,还包括:
响应于电子地图的缩放指令,获取与相应电子地图比例尺对应的地图相机的横向张角。
7.根据权利要求1-4中任一项所述的方法,所述地图显示参数包括:
三维地图的俯仰角,所述俯仰角用于确定所述局部天空纹理的纵向显示范围。
8.一种地图显示装置,包括:
纹理获取装置,用于获取天空纹理;
地图确定装置,用于确定视野范围内待显示电子地图的地图渲染数据;
纹理确定装置,用于基于待显示电子地图的方位角和地图相机的横向张角,从所述天空纹理中,确定局部天空纹理;
显示装置,用于根据所述地图渲染数据、所述局部天空纹理和地图显示参数,显示带有天空效果的电子地图。
9.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至7中任何一项所述的方法。
10.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至7中任何一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110472684.5A CN115268805A (zh) | 2021-04-29 | 2021-04-29 | 地图显示方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110472684.5A CN115268805A (zh) | 2021-04-29 | 2021-04-29 | 地图显示方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115268805A true CN115268805A (zh) | 2022-11-01 |
Family
ID=83746003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110472684.5A Pending CN115268805A (zh) | 2021-04-29 | 2021-04-29 | 地图显示方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115268805A (zh) |
-
2021
- 2021-04-29 CN CN202110472684.5A patent/CN115268805A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3359918B1 (en) | Systems and methods for orienting a user in a map display | |
US9262996B2 (en) | Apparatus and method for displaying images | |
EP3170151B1 (en) | Blending between street view and earth view | |
US9384596B2 (en) | Visualization of obscured objects in 3D space | |
JP2010501932A (ja) | 地図作成アプリケーションにおける数値表面モデルのモデリングおよびテクスチャリング | |
RU2686591C1 (ru) | Устройство выработки изображения и устройство управления отображением изображения | |
US9466149B2 (en) | Lighting of graphical objects based on environmental conditions | |
JP2007066064A (ja) | 画像生成装置及びプログラム | |
US8619071B2 (en) | Image view synthesis using a three-dimensional reference model | |
CN107862652B (zh) | 一种鸟瞰图生成方法及装置 | |
US10088678B1 (en) | Holographic illustration of weather | |
US20150187098A1 (en) | Method and apparatus for unobtrusively changing imagery supplementing a map display | |
US20220301129A1 (en) | Condition-aware generation of panoramic imagery | |
CN114693878A (zh) | 模拟天空图像生成方法及装置、地图生成方法和设备 | |
CN115268805A (zh) | 地图显示方法和装置 | |
JP4980153B2 (ja) | 画像表示装置および画像表示方法 | |
CN112037292B (zh) | 天气系统的生成方法及装置、设备 | |
CN111724488B (zh) | 地图场景绘制方法、装置、可读存储介质和计算机设备 | |
CN111210514B (zh) | 一种将照片批量融合到三维场景中的方法 | |
US9324176B2 (en) | Apparatus and method for saving and updating image file | |
CN112330769A (zh) | 虚线纹理的生成方法、装置及电子设备 | |
CN111970504A (zh) | 利用虚拟投影反向模拟三维球体的展示方法、装置和系统 | |
Swart et al. | Mathematics Meets Photography Part I | |
CN117676111A (zh) | 一种扩展现实图像的显示方法、装置及设备 | |
Cheney | Image Based Rendering: Using High Dynamic Range Photographs to Light Architectural Scenes |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240313 Address after: # 03-06, Lai Zan Da Building 1, 51 Belarusian Road, Singapore Applicant after: Alibaba Innovation Co. Country or region after: Singapore Address before: Room 01, 45th Floor, AXA Building, 8 Shanton Road, Singapore Applicant before: Alibaba Singapore Holdings Ltd. Country or region before: Singapore |
|
TA01 | Transfer of patent application right |