CN117036576B - 地图渲染方法、装置、电子设备及存储介质 - Google Patents
地图渲染方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117036576B CN117036576B CN202311295990.1A CN202311295990A CN117036576B CN 117036576 B CN117036576 B CN 117036576B CN 202311295990 A CN202311295990 A CN 202311295990A CN 117036576 B CN117036576 B CN 117036576B
- Authority
- CN
- China
- Prior art keywords
- value
- map
- pixel
- rendering
- gland
- 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.)
- Active
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 215
- 238000000034 method Methods 0.000 title claims abstract description 88
- 210000004907 gland Anatomy 0.000 claims abstract description 131
- 238000012360 testing method Methods 0.000 claims abstract description 100
- 230000004044 response Effects 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 46
- 239000012634 fragment Substances 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000004888 barrier function Effects 0.000 claims description 2
- 239000003550 marker Substances 0.000 claims 2
- 230000008569 process Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000001788 irregular Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 241000274965 Cyrestis thyodamas Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Remote Sensing (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种地图渲染方法、装置、电子设备及存储介质;应用在地图以及车载场景;方法包括:获取地图数据,其中,地图数据包括多个单元格,每个单元格存储至少一个元素;根据地图数据中每个元素的类型,对每个元素中的像素进行标记处理,得到每个像素的标记值;对地图数据中的多个单元格进行划分,得到多个压盖分片以及多个非压盖分片;根据每个压盖分片中的像素的标记值,对每个压盖分片中的像素进行模板测试,得到模板测试结果;根据模板测试结果对每个压盖分片进行渲染处理,得到地图的第一部分渲染结果;对每个非压盖分片进行渲染处理,得到地图的第二部分渲染结果。通过本申请,能够提升地图实时渲染的准确性。
Description
技术领域
本申请涉及地图技术,尤其涉及一种地图渲染方法、装置、电子设备及存储介质。
背景技术
地图数据中可能包含压盖的数据,进而地图数据在渲染后经常形成重叠面深度抖动(相邻帧之间的深度比较结果不一致,从而出现图像闪烁)、路面标线重叠或者冗余等现象,影响了地图渲染的准确性,基于错误的地图,用户难以确定正确的路线,影响了地图的使用体验。
发明内容
本申请实施例提供一种地图渲染方法、装置、电子设备及计算机可读存储介质、计算机程序产品,能够提升地图实时渲染的准确性。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种地图渲染方法,所述方法包括:
获取地图数据,其中,所述地图数据包括多个单元格,每个所述单元格存储至少一个元素;
根据所述地图数据中每个元素的类型,对每个所述元素中的像素进行标记处理,得到每个所述像素的标记值;
对所述地图数据中的多个单元格进行划分,得到多个压盖分片以及多个非压盖分片;
根据每个所述压盖分片中的所述像素的标记值,对每个所述压盖分片中的所述像素进行模板测试,得到模板测试结果;
根据所述模板测试结果对每个所述压盖分片进行渲染处理,得到所述地图的第一部分渲染结果;
对每个所述非压盖分片进行渲染处理,得到所述地图的第二部分渲染结果。
本申请实施例提供一种地图渲染装置,包括:
获取模块,用于获取地图数据,其中,所述地图数据包括多个单元格,每个所述单元格存储至少一个元素;
编译模块,用于根据所述地图数据中每个元素的类型,对每个所述元素中的像素进行标记处理,得到每个所述像素的标记值;
划分模块,用于对所述地图数据中的多个单元格进行划分,得到多个压盖分片以及多个非压盖分片;
模板测试模块,用于根据每个所述压盖分片中的所述像素的标记值,对每个所述压盖分片中的所述像素进行模板测试,得到模板测试结果;
渲染模块,用于根据所述模板测试结果对每个所述压盖分片进行渲染处理,得到所述地图的第一部分渲染结果;
所述渲染模块,还用于对每个所述非压盖分片进行渲染处理,得到所述地图的第二部分渲染结果。
本申请实施例提供一种电子设备,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的地图渲染方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令,用于被处理器执行时,实现本申请实施例提供的地图渲染方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的地图渲染方法。
本申请实施例具有以下有益效果:
对地图数据中的元素的类型对地图中每个像素进行标记,对地图数据进行分片划分,根据不同分片的类型执行相应的渲染处理,基于标记结果对压盖分片进行模板测试,基于模板测试结果执行对压盖元素的渲染,对非压盖分片执行普通的渲染处理,两部分渲染结果结合形成最终渲染结果。相较于现有技术中对地图数据中的重叠部分进行预先删除,再执行地图渲染的方案,所需的计算资源更少,在不影响实时渲染效率的情况下,提升了地图渲染的准确性。
附图说明
图1是本申请实施例提供的地图渲染方法的应用模式示意图;
图2是本申请实施例提供的电子设备的结构示意图;
图3A是本申请实施例提供的地图渲染方法的流程示意图一;
图3B是本申请实施例提供的地图渲染方法的流程示意图二;
图3C是本申请实施例提供的地图渲染方法的流程示意图三;
图3D是本申请实施例提供的地图渲染方法的流程示意图四;
图4是地图中的压盖现象的示意图;
图5A是本申请实施例提供的地图渲染方法对地图数据进行处理前后的效果对比图一;
图5B是本申请实施例提供的地图渲染方法对地图数据进行处理前后的效果对比图二;
图5C是本申请实施例提供的地图渲染方法对地图数据进行处理前后的效果对比图三;
图6是本申请实施例提供的地图渲染方法的一个可选的流程示意图;
图7A是本申请实施例提供的模板值示意图;
图7B是本申请实施例提供的元素位置关系的示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
需要指出,本申请书中相关数据收集处理(例如:地图数据、实时定位数据)在实例应用时应该严格根据相关国家法律法规的要求,获取个人信息主体的知情同意或单独同意,并在法律法规及个人信息主体的授权范围内,开展后续数据使用及处理行为。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)压盖,地图中的元素之间互相叠置的现象。地图中的元素的类型包括:道路、车道线、文本、标签、符号等。
2)实时渲染,指的是根据图形学算法将三维数据绘制到二维位图之中,并将这些位图实时显示。它的本质就是对图像数据的实时计算和输出。渲染应用程序接口(API)将内存中的数据描述转化成像素,并将像素呈现到屏幕上。
3)模板测试,计算机的测试方法。在每次写入一个像素点颜色值前,使用设定的模板比较函数进行测试,即对该像素点对应的模板缓冲单元的值和模板参考值进行比较,只有在模板比较函数输出的结果是比较成功时,渲染函数才执行针对被测试的像素点的写入操作。
4)深度测试,一种用来判断在场景中的物体之间的前后遮挡关系,以此决定哪些片段能够显示在屏幕上的技术。
5)深度抖动,地图中形成图像闪烁现象的原因之一,具体是场景中的坐标z值范围超过了图形渲染库能够识别的精度,相邻帧之间的深度比较结果不一致,从而出现图像闪烁。
6)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
7)瓦片数据格式(tiles),常见的地图数据格式。瓦片数据格式将大量的三维数据以分块分层的形式组织起来,文件数据中的每个瓦片(单元格)均能够存储数据。
8)地图分片(mesh),分片是计算机图形学中用于各种不规律物体建模的一种数据结构。
本申请实施例提供一种地图渲染方法、地图渲染装置、电子设备和计算机可读存储介质及计算机程序产品,能够提升地图实时渲染的准确性。
下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施终端设备,如笔记本电脑、平板电脑、台式计算机、机顶盒、智能电视、移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、车载终端、虚拟现实(Virtual Reality,VR)设备、增强现实(AugmentedReality,AR)设备等各种类型的用户终端,也可以实施为服务器。下面,将说明电子设备实施为终端设备或服务器时示例性应用。
参考图1,图1是本申请实施例提供的地图渲染方法的应用模式示意图;示例的,图1中涉及服务器200、网络300及终端设备400、数据库500。终端设备400通过网络300连接服务器200,终端设备400用于显示地图画面100,网络300可以是广域网或者局域网,又或者是二者的组合。
在一些实施例中,用户可以是使用地图导航功能的司机,服务器200可以是地图平台的服务器,数据库500是地图数据库,存储有大量的地图数据,终端设备400中安装有能够查看地图的应用程序。
示例的,司机驾驶车辆的过程中通过终端设备400中安装的地图应用程序观看地图画面,终端设备400通过网络300向服务器200发送数据请求,服务器200向终端设备400发送对应的地图数据,终端设备400调用本申请实施例提供的地图渲染方法对地图数据进行实时渲染,显示地图画面100,地图画面100中的车道没有盖压现象、车道标线不存在冗余现象,提升了渲染地图的准确性,提升了用户使用地图的体验。
在一些实施例中,本申请实施例的地图渲染方法还可以应用在以下应用场景中:(1)游戏虚拟场景的地图渲染。例如:通过调用本申请实施例提供的地图渲染方法,对游戏的虚拟场景的地图进行实时渲染,以根据玩家控制的虚拟对象的当前位置同步显示对应的地图。(2)用车类应用程序,例如:共享单车的应用程序,终端设备中安装的共享单车应用程序调用本申请实施例提供的地图渲染方法,实时渲染用户所处环境周边的地图,并在地图上显示可以使用的共享单车的位置标记,用户可以查看地图并用车。
本申请实施例可以通过数据库技术实现,数据库(Database),简而言之可视为电子化的文件柜存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理系统(Database Management System,DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible Markup Language,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如结构化查询语言(SQL,Structured Query Language)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
本申请实施例,还可以通过云技术实现,云技术(Cloud Technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,将来每个物品都有可能存在自己的哈希编码识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
在一些实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。电子设备可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的电子设备的结构示意图,电子设备可以是图1中的终端设备400,图2所示的终端设备400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器 410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的地图渲染装置455,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块4551、编译模块4552、划分模块4553、模板测试模块4554以及渲染模块4555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的地图渲染装置可以采用硬件方式实现,作为示例,本申请实施例提供的地图渲染装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的地图渲染方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的地图渲染方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如地图APP、打车APP或者即时通信APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的地图渲染方法。
下面,说明本申请实施例提供的地图渲染方法,如前所述,实现本申请实施例的地图渲染方法的电子设备可以是终端或者服务器,又或者是二者的结合。因此下文中不再重复说明各个步骤的执行主体。
需要说明的是,下文中的图像处理的示例中,是以真实场景的地图为例说明的,本领域技术人员根据对下文的理解,可以将本申请实施例提供的地图渲染方法应用于包括虚拟场景的地图的处理。
参见图3A,图3A是本申请实施例提供的地图渲染方法的流程示意图一,将结合图3A示出的步骤进行说明。
在步骤301中,获取地图数据。
这里,地图数据包括多个单元格,每个单元格存储至少一个元素。
示例的,地图以瓦片数据(tile)格式进行存储,一个瓦片也即一个存储数据的单元格。
在一些实施例中,步骤301可以通过以下方式实现:
方式1、响应于针对当前位置的查看操作,获取以当前位置为基准的第一预配置范围内的地图数据。
示例的,第一预配置范围的形状可以是圆形、矩形正方形或者其他形状,此处不做限制。以当前位置为基准包括以下至少一种情况:以当前位置为中心;当前位置处于第一预配置范围内,但不是第一预配置范围的中心;当前位置处于第一预配置范围的边缘。
例如:获取以当前位置为中心的预配置的圆形范围内的地图数据。
方式2、响应于当前位置基于当前方向移动,获取当前方向上的第二预配置范围内的地图数据。
示例的,第二预配置范围与第一预配置范围中的第一、第二仅为区分不同的范围,第二预配置范围的形状可以是圆形、矩形或者其他形状,此处不做限制。在一些应用场景中,当前位置朝着特定方向移动。
例如:用户驾车时,终端设备放置在汽车内,终端设备沿当前道路的行驶方向进行移动,则当前方向是车辆的车头所指向的方向,实时加载车辆前方道路的矩形预配置范围内的地图数据。地图数据可以是服务器发送给终端设备,或者终端设备本地存储的。
方式3、响应于针对目的地位置的查询操作,获取以目的地位置为基准的第三预配置范围内的地图数据。
示例的,第三预配置范围可以参考上述第一、第二预配置范围,此处不再赘述。例如:获取以目的地位置为中心的正方形预配置范围内的地图数据。
本申请实施例中,在多种不同的前提条件下获取地图数据,以进行地图实时渲染,能够满足多种应用场景的地图使用需求,提升用户体验,快速响应地进行地图渲染。
在一些实施例中,在步骤302之前,参考图3B,图3B是本申请实施例提供的地图渲染方法的流程示意图二,获取每个元素的类型,可以通过执行步骤3021至步骤3022实现,以下具体说明。
在步骤3021中,获取每个元素的空间坐标。
示例的,获取每个元素的类型是在地图数据编译阶段执行的,地图可以是在真实场景或者虚拟场景建模中的地图,以真实场景的车道级地图为例,元素包括:车道、车道上的路标、护栏等。获取每个元素在真实场景中的空间坐标、形状属性等数据,形成地图数据。
在步骤3022中,根据每个元素的空间坐标对每个元素进行压盖测试,得到每个元素的类型。
示例的,压盖测试也即碰撞处理,用于确定每两个元素之间的位置关系。获取得到的每个元素的类型可以记录为对应的扩展字段(例如:overlapFlag),存储到地图数据中,进而元素类型的扩展字段能够作用于元素中的每个像素。例如:overlapFlag的属性值为1,则为压盖元素,overlapFlag的属性值为0,则为非压盖元素。
在一些实施例中,元素的类型包括:压盖元素以及非压盖元素,压盖元素是地图数据中被其他元素遮盖的元素;步骤3022可以通过以下方式实现:根据每个元素的空间坐标确定任意两个元素之间的位置关系;响应于元素与其他元素之间的位置关系为被遮盖,将元素作为压盖元素;响应于元素与其他元素之间的位置关系为未被遮盖,将元素作为非压盖元素。
示例的,元素与其他元素之间的位置关系为被遮盖,也就是说,元素被其他元素所遮盖,元素与其他元素之间的位置关系为未被遮盖,也就是说,元素没有被其他元素所遮盖。例如:元素A与元素B的位置关系为被遮盖,元素B的至少部分盖住了元素A,元素A与元素B的位置关系为未被遮盖,元素B和元素A之间互不遮盖。
示例的,空间坐标包括:平面坐标以及高度;根据每个元素的空间坐标确定任意两个元素之间的位置关系,可以通过针对每个元素执行以下处理实现:
1、响应于元素的平面坐标与其他元素的平面坐标相同,且元素的高度大于坐标相同的其他元素的高度,确定元素与其他元素之间的位置关系为未被遮盖。
例如:元素A中的一个点的空间坐标为(x,y,Z1),元素B的中的第一个点的空间坐标为(x,y,z1),平面坐标均为(x,y),元素A的高度Z1大于元素B的高度z1,则元素A没有被元素B遮盖。
2、响应于元素的平面坐标与其他元素的平面坐标相同,且元素的高度小于坐标相同的其他元素的高度,确定元素与其他元素之间的位置关系为被遮盖。
例如:元素A中的一个点的空间坐标为(x,y,Z2),元素B的中的第一个点的空间坐标为(x,y,z2),平面坐标均为(x,y),元素A的高度Z2小于元素B的高度z2,则元素A被元素B所遮盖。
3、响应于元素的平面坐标与其他元素的平面坐标不相同,确定坐标不相同的元素与其他元素之间的位置关系为未被遮盖。
例如:元素A中的每个点的空间坐标的平面位置与元素B的中的每个点的空间坐标的平面位置均不相同,则元素A和元素B在水平方向上没有相交的部分,则元素A没有被元素B所遮盖。
在实际应用场景中,3D地图根据观察角度不同,地图画面中元素所呈现的状态是不同的;上文以空间坐标系为例进行说明,在空间坐标系的情况下,观察视角为从正上方向下观察地图,地图画面所呈现的元素之间的遮盖与原始的垂直高度相关。
示例的,虚拟相机是观看虚拟场景的工具,通过拍摄虚拟场景的部分区域而在显示屏上显示虚拟场景的画面。以地图为例,地图画面是通过虚拟相机拍摄地图的部分区域而获得的,用户通过控制虚拟相机的移动,可以观看到地图中不同区域的画面。从正上方以外的方向对地图进行观察时,元素之间的遮盖关系以相机坐标系作为参考,元素之间的遮盖关系与元素距离虚拟相机的距离相关,在相机坐标系中同一平面位置的两个元素中,距离虚拟相机更近的遮盖距离虚拟相机更远的。例如:虚拟相机从正上方向下观察地图,可以参考空间坐标系或者相机坐标系,空间坐标系、相机坐标系中元素A均比元素B高,元素A遮盖元素B;若虚拟相机翻转,从下往上观察,可以参考相机坐标系,元素B距离虚拟相机更近,元素B遮盖元素A。
本申请实施例中,通过轻量级的压盖检测,在不影响实时渲染的进度、速度的情况下,确定了每个元素的类型,便于对地图中的元素进行渲染,提升地图渲染准确度。
继续参考图3A,在步骤302中,根据地图数据中每个元素的类型,对每个元素中的像素进行标记处理,得到每个像素的标记值。
示例的,元素的类型包括:压盖元素以及非压盖元素,压盖元素是地图数据中被其他元素遮盖的元素。根据上文中得到的元素类型,元素类型以扩展字段的形式存储在地图数据中,可以作用到元素的每个像素,可以通过查询扩展字段对应的属性值确定元素的类型。
在一些实施例中,步骤302可以通过以下方式实现:对每个元素中的像素执行以下处理:响应于像素所属的元素的类型为非压盖元素,将像素的标记值记为第一预设值;响应于像素所属的元素的类型为压盖元素,将像素的标记值记为第二预设值,其中,第二预设值大于第一预设值。
示例的,第一预设值可以是0,第二预设值可以是1,则像素属于非盖压元素则标记为0,反之,像素属于盖压元素则标记为1。继续基于上述举例进行说明,扩展字段的属性值为0,则像素的标记值为0,扩展字段的属性值为1,则像素的标记值为1,节约了确定标记值所需的计算资源。
在步骤303中,对地图数据中的多个单元格进行划分,得到多个压盖分片以及多个非压盖分片。
示例的,压盖分片是包括至少一个压盖元素的分片,非压盖分片是不包含压盖元素的分片。多个压盖分片、多个非压盖分片的渲染处理分批进行,由于非压盖分片中没有压盖元素,为提升渲染的准确性,先执行压盖分片的渲染处理,后执行非压盖分片的渲染处理。
在一些实施例中,步骤303可以通过以下方式实现:针对每个单元格执行以下处理:响应于单元格包括压盖元素,基于单元格中的压盖元素生成作为构成地图的表面的压盖分片。响应于单元格包括非压盖元素,基于单元格中的非压盖元素生成用于构成地图的表面的非压盖分片。
示例的,地图数据以瓦片(tile)数据格式进行存储,单元格包括压盖元素或者单元格包括非压盖元素,是指单元格(tile)中存储的数据包括压盖元素对应的三维模型与属性等数据。一个单元格中存储的数据可以是:仅有压盖元素,仅有非压盖元素,或者两种元素均有。
地图数据可以表征为分片(mesh)构成的多边形网格,分片是计算机图形学中用于各种不规律物体建模的一种数据结构,地图中的分片(mesh)可以分为三类:线性分片、网格分片和曲面分片。线性分片是由一些相互连接的线段组成的,它们可以用来描述几何表面。网格分片是由一系列网格三角形组成的,可以用来模拟几何表面的形状。曲面分片是由一系列三角形组成的,每个三角形都具有不同的法线,可以用来描述曲面或凹凸表面。本申请实施例中,根据分片所包括的元素对分片进行分类。
本申请实施例中,通过根据类型对地图分批次进行渲染,避免对压盖元素的渲染出现混淆,提升了渲染的准确性,同时分批次进行渲染处理,避免对处理器造成较大的负载,节约了内存空间。
在步骤304中,根据每个压盖分片中的像素的标记值,对每个压盖分片中的像素进行模板测试,得到模板测试结果。
示例的,模板测试结果存储在模板缓冲区中,模板测试用于确定每个像素的模板值,模板值可以作为是否对像素进行渲染的参考。
在一些实施例中,标记值包括:第一预设值(例如:0)与第二预设值(例如:1),第二预设值大于第一预设值,且第一预设值与参考值(例如:0)相等;参考图3C,图3C是本申请实施例提供的地图渲染方法的流程示意图三,图3A的步骤304可以通过图3C的步骤3041至步骤3045实现,以下具体说明。
在步骤3041中,获取每个压盖分片中每个像素的深度测试结果。
示例的,深度测试可以在步骤304之前进行,或者在执行模板测试时同步执行,深度测试是用于判断在场景中的物体之间的前后遮挡关系,以此决定哪些片段能够显示在屏幕上的技术。深度测试的结果为成功的像素用于显示在屏幕上,深度测试的结果为失败的像素对应的物体被其他物体遮挡。
在步骤3042中,针对每个压盖分片中每个像素执行以下处理:响应于像素的标记值等于参考值,且像素通过深度测试,将像素的模板值记为第一数值。
示例的,像素的标记值与参考值之间的大小关系可以作为一个条件,若像素的标记值等于参考值,则满足测试通过条件(pass),其他情况均记为测试未通过。假设:参考值为0,则第一数值为1。获取到像素的标记值为第一预设值(0),第一预设值等于参考值,则通过模板测试,将像素的模板值记为第一数值(1),模板值可以通过标记值加1得到。
在步骤3043中,响应于像素的标记值等于参考值,且像素未通过深度测试,将像素的模板值记为参考值。
这里,参考值小于第一数值。
示例的,继续基于上文举例进行说明,假设模板测试通过,而深度测试未通过,维持模板值为原标记值,模板测试通过的像素的原标记值为参考值,则像素的模板值为0。
在步骤3044中,响应于像素的标记值大于参考值,将像素的模板值记为第二数值。
这里,第一数值小于第二数值。
假设第一数值是1,则第二数值可以是2。未通过模板测试,将像素的模板值记为第二数值(2),模板值可以通过标记值加1得到。
在步骤3045中,将每个压盖分片中的所有像素的模板值作为模板测试结果。
示例的,模板测试结果存储在模板缓冲区中,模板缓冲区中包括地图数据的压盖分片的每个像素的模板值。参考图7A,图7A是本申请实施例提供的模板值示意图;压盖地图701是存在压盖的地图,标记地图702是压盖地图701经过模板测试之后被标记的模板值。其中,压盖区域被标记为2,路面被标记为1,地面区域模板测试成功而深度测试失败,地面区域标记为0。
参考图7B,图7B是本申请实施例提供的元素位置关系的示意图。图7B用于表征图7A中的路面、地面之间的关系。路面重叠的部分的模板值为2(表征为深色部分),路面未被压盖的部分的模板值为1(表征为浅色部分),地面部分的模板值为0。
本申请实施例中,基于地图数据编译过程中添加的标记值,进行模板测试,进而根据模板测试的结果对地图数据进行渲染。相较于现有技术中通过拆分车道组避免出现压盖现象的方案,模板测试所消耗的计算资源少,能够在不影响实时渲染速度的情况下提升实时渲染的准确性。
继续参考图3A,在步骤305中,根据模板测试结果对每个压盖分片进行渲染处理,得到地图的第一部分渲染结果。
示例的,压盖分片以及非压盖分片的渲染处理是分批次进行的,一方面能够节约渲染所消耗的计算资源,降低渲染所占用的内存,另一方面能够降低所形成的地图画面中的元素压盖导致的像素抖动。
在一些实施例中,参考图3D,图3D是本申请实施例提供的地图渲染方法的流程示意图四,图3A的步骤305可以通过以下步骤3051至步骤3053实现,以下具体说明。
在步骤3051中,对每个压盖分片中的每个像素执行以下处理:响应于像素的模板值小于或者等于第一数值,对像素进行渲染处理。
示例的,基于上述步骤3041至步骤3045中的举例继续说明,第一数值可以是1,通过了模板测试的每个像素的模板值均小于或者等于1。
在步骤3052中,响应于像素的模板值大于第一数值,将像素存储为只读数据。
示例的,继续基于上述举例进行说明,未通过模板测试的像素的模板值是第二数值(2),将像素存储为只读数据,也即跳过该像素,无需对其进行渲染处理,进而,该像素最终不会呈现在渲染结果对应的画面中。
示例的,路面之上附着有标线,若路面重叠,则路面不会被渲染,路面的标线也不会被渲染,所形成的视觉效果相当于通过路面裁剪路面标线,也即,路面属于压盖部分,则路面上的元素同样属于压盖部分,进而不会被渲染,被存储为只读数据,避免了路面重叠、标线冗余等压盖现象。
在步骤3053中,每个压盖分片的每个像素的渲染结果组合为地图的第一部分渲染结果。
示例的,对每个压盖分片的渲染处理可以是并行的或者依次的,本申请实施例不做限制。在得到每个压盖分片的渲染结果时,将每个渲染结果拼接为地图的第一部分渲染结果。
继续参考图3A,在步骤306中,对每个非压盖分片进行渲染处理,得到地图的第二部分渲染结果。
示例的,非压盖分片中未包含压盖元素,无需执行模板测试,根据普通的渲染方式进行渲染即可。根据地图数据中每个的元素的功能划分,元素的类型包括:道路元素、设置在道路元素上的附加元素;附加元素包括以下至少一种:道路标线(例如:道路边线、车道线、流向箭头、路口边线)、护栏、路障以及道路交通标志(例如:指示牌、路灯)。
在一些实施例中,步骤306可以通过以下方式实现:基于预设顺序对每个非压盖分片中的每个元素的像素进行渲染处理,得到第二部分渲染结果,预设顺序为:道路元素、设置在道路元素上的附加元素。
示例的,非压盖分片的渲染无需进行模板测试,依次对道路元素以及道路上的附加元素进行渲染,得到的第二部分渲染结果,形成附加元素附着在道路元素之上的视觉效果。例如:地图数据用于表征真实场景的地图,渲染所形成的地图中,道路上的标线、路障、护栏等物体的图形均标注在道路所处的范围内,更接近于真实场景,便于用户参考地图进行驾驶、通行。
在一些实施例中,在步骤306之后,组合地图的第一部分渲染结果与第二部分渲染结果,得到完整渲染结果;获取用于显示地图的设备的显示参数,其中,显示参数包括以下至少一项:地图缩放比例、地图坐标与屏幕坐标之间的转换比例;基于显示参数并以参考位置为基准,显示完整渲染结果的至少部分,其中,参考位置的类型包括:当前位置以及目的地位置。
假设用于显示地图的电子设备是智能手表,获取智能手表的屏幕对应的地图坐标与屏幕坐标转换比例、地图缩放比例,参考位置可以是当前位置,则智能手表的屏幕中所显示的地图画面至少包括当前位置,以及所显示的完整渲染结果是根据对应的地图缩放比例进行调整后的。
本申请实施例中,对地图数据中的元素的类型对地图中每个像素进行标记,对地图数据进行分片划分,根据不同分片的类型执行相应的渲染处理,基于标记结果对压盖分片进行模板测试,基于模板测试结果执行对压盖元素的渲染,对非压盖分片执行普通的渲染处理,两部分渲染结果结合形成最终渲染结果。相较于现有技术中对地图数据中的重叠部分进行预先删除,再执行地图渲染的方案,所需的计算资源更少,在不影响实时渲染效率的情况下,提升了地图渲染的准确性。
下面,将说明本申请实施例地图渲染方法在一个实际的应用场景中的示例性应用。
高精地图(High Definition Map,HDM)是一种用于自动驾驶的高精度地图,包含道路形状、道路标记、交通标志和障碍物等地图元素。高清数据(以下简称HD数据)涉及多种分类,多套规格:1、标准清晰(Standard Definition,SD)数据。2、基于标准清晰数据生成的城市车道级数据,包括:车道高度和多车道展示的信息。3、高精度的HD数据,一般能达到分米级别精度,包含有准确的车道线、红绿灯、标志牌、路面箭头。
高精地图的地图数据中,道路交叉的部分由于测绘得到的数据与真实数据存在误差,道路交叉的地方往往存在各种叠加交叉,形成压盖现象,参考图4,图4是地图中的压盖现象的示意图;第一地图401中,三岔路口处呈现压盖现象,这是由于数据高度重叠面深度抖动形成的;第二地图402中,三岔路口虽然未出现路面重叠,但路面的标线冗余,呈现压盖现象。
相关技术中,为了避免出现压盖现象,目前有如下处理方式:
(1)针对道路压盖场景,数据编译道路的面进行融合生成路口,然后拿路口区域来裁剪标线,护栏等元素。离线编译阶段的工艺水平要求非常高,编译结果要进行三维还原,做非常全面的检查。重叠区域的切割结果会产生破碎的车道组(lanegroup),需要针对渲染引擎的编译格式做定制化,增加面类型接收异形的车道组数据存储。
上述方案在数据编译阶段进行裁剪,剔除压盖数据,以避免出现压盖。但是系统性地规避形成压盖现象的数据,对编辑技术要求非常高,几何裁剪结果会出现异常形状,无法通过标准的NDS规格进行存储。并且,裁剪过程中,容易出现裁剪过度的问题,例如:裁剪后的整个车道组退化成了一个三角形,这种数据无法满足诱导和定位的使用。并且,编译工艺需要长时间的技术打磨和积累,所需时间成本较高,无法满足项目交付的时间点。
(2)降级的渲染方案。在低等级道路(例如:没有道路标线的道路)衔接的位置,通过高度差,将低等级道路直接插入高等级道路(例如:设置了道路标线的道路)的路口下面。缺点是道路和路口无法正常渲染边线等元素,进而渲染效果有损,道路边缘不清晰,影响用户使用地图的体验。
本申请实施例,针对地图渲染所形成的渲染效果中存在压盖的问题,在实时渲染中利用模板测试技术,对道路及道路上的相关元素做像素级别的重叠压盖剔除。相较于相关技术所采取的方案,在维持实时渲染效率的情况下,提升了渲染结果的准确性。
参考图6,图6是本申请实施例提供的地图渲染方法的一个可选的流程示意图;以终端设备为执行主体,以下结合图6的步骤进行说明。
在步骤601中,对地图数据进行分类标记。
示例的,在地图数据的数据编译阶段,针对压盖的路段进行预碰撞,标记出相交的元素。道路的预碰撞可以通过以下方式实现:对地图中的道路,分元素(例如:路面、标线、车道线)进行空间压盖检测,最终划分出很多分组,编译每个分组中的元素。空间压盖检测用于确定元素之间的位置关系是否存在叠加。
示例的,HD地图的元素的数据协议增加一个扩展字段overlapFlag溢出标识(上跟的标记值),表示是否属于压盖组(上文元素类型中的压盖元素)。标记值1表征被其他元素所压盖,标记值0为正常。基于上述字段标识,分组的编译过程可以通过以下方式实现:组中的元素个数等于1,确定元素之间没有相交,跳过,元素的overlapFlag设置为0;组中的元素数量大于1,组中的元素的overlapFlag设置成1,表示需要根据模板测试的结果进行渲染处理。元素的溢出标识作用与元素对应的每个像素,形成每个像素的标记值。
在步骤602中,根据地图数据的标记进行批次拆分。
示例的,地图元素按照功能进行分类包括道路元素、道路元素上的元素(例如:标线、路标、护栏等)、建筑物元素等。以道路级别地图为例进行说明。
地图渲染过程中的建模阶段,针对地图所有的HD元素,都进一步拆分成两组:标记压盖的(下文简称压盖组),非压盖的(下文简称非压盖组)。地图数据按格式瓦片数据(tile),单个瓦片(单元格)内包括三维模型与属性)存储,每个瓦片内的同一类道路,溢出标识为1的建模成一个地图分片(上文的压盖分片),溢出标识为0的建模成一个地图分片(上文的非压盖分片)。拆分完成之后,压盖组中包括多个压盖分片,非压盖组中包括多个压盖分片。压盖组、非压盖组分批次进行渲染。
在步骤603中,对压盖组进行模板测试。
示例的,本申请实施例中,通过执行模板测试来处理地图中元素重叠区域的碰撞冲突,模板测试的规则可以表征为以下内容:
测试过程:将压盖分片中的每个像素的溢出标识作为模板值,对分片中的每个像素的模板值与参考值进行比对,参考值为0。
测试成功所满足的条件:像素对应的参考值与模板值相等。
若像素的模板值为0,模板值等于参考值0,模板测试结果为成功且深度测试的结果也为成功,对像素的模板值进行加一,得到更新后的模板值为1,将像素的更新后的模板值存储到模板缓冲区。
若像素的模板值为0,模板值等于参考值0,模板测试结果为成功且深度测试的结果为失败,像素的模板值维持为0,将像素的模板值存储到模板缓冲区。
若像素的模板值为1,模板值大于参考值0,模板测试结果为失败,对像素的模板值进行加一,得到更新后的模板值为2。
示例的,地图的图像中的每个像素标注对应的模板值,模板值存储在在模板缓冲区中像素对应的位置。深度测试是一种用来判断在场景中的物体之间的前后遮挡关系,以此决定哪些片段能够显示在屏幕上的技术。深度测试结果不影响模板测试的成功或者失败。
在步骤604中,绘制压盖组道路上的元素。
示例的,本申请实施例中参考值设置为0,执行绘制的模板值为小于或者等于1,实际应用中模板值可以设置为其他值,模板规则中的数值可以根据应用场景适应性修改,使用其他模板测试规则的配置也属于本申请实施例的保护范围。
参考图7A,图7A是本申请实施例提供的模板值示意图;压盖地图701是存在压盖的地图,标记地图702是压盖地图701经过模板测试之后被标记的模板值。其中,压盖区域被标记为2,路面被标记为1,地面区域模板测试成功而深度测试失败,地面区域标记为0。
参考图7B,图7B是本申请实施例提供的元素位置关系的示意图。图7B用于表征图7A中的路面、地面之间的关系。路面重叠的部分的模板值为2(表征为深色部分),路面未被压盖的部分的模板值为1(表征为浅色部分),地面部分的模板值为0。
示例的,基于上述模板测试的结果,可以执行以下渲染处理:将模板缓冲区中存储的每个像素的模板值与渲染处理的参考值(上文的第一数值)进行比较,渲染处理的参考值可以是1。可以通过以下函数获取模板缓冲区中存储的每个像素的模板值:Sval =StencilBuffer[pixelPos],模板值=模板缓冲区[像素点坐标]。当像素的模板值小于或者等于1时,对像素进行渲染,被渲染的像素可以用于形成可视的渲染效果。当像素的模板值大于1时,不对像素进行渲染,像素被设置为只读数据,存储在模板缓冲区中。
示例的,对于路面上的元素,诸如道路边线、车道线、流向箭头、路口边线,护栏等。渲染条件是渲染处理的参考值大于或者等于(EqualGreater)像素的模板值,则像素可以呈现在当前屏幕中对应的位置,上屏呈现。
示例的,路面元素与路面上的元素之间的关系是路面区域能够完全覆盖路面上的元素对应的区域。例如:路面上的标记线完全处于路面区域内,不会超出路面区域。由于路面与路面上的元素之间的上述关系,本申请实施例提供的地图渲染方法中,相当于通过路面裁剪路面标线,也即,路面属于压盖部分,则路面上的元素同样属于压盖部分,进而不会被渲染,被存储为只读数据,避免了路面重叠、标线冗余等压盖现象。
本申请实施例中,根据模板测试结果渲染压盖组的,解决了重叠区域的冲突,保证重叠区域的像素不会被重复渲染,避免了道路重叠、道路上的元素冗余。
在步骤605中,绘制非压盖组路面。
示例的,非压盖组的渲染过程中,无需执行模板测试。由于压盖组和非压盖组中元素之间的位置关系不同,二者是先后渲染的。
在步骤606中,绘制非压盖组的路面上的元素。
示例的,路面上的元素(上文的附加元素),包括:道路上的标线、车道线、护栏等物体。在渲染完成非压盖组的数据之后,将压盖组和非压盖组分别对应的渲染结果进行拼接,形成最终的地图画面。
在一些实施例中,以下将本申请实施例提供的方法制作的地图称为优化地图,存在压盖现象的地图称为原始地图。参考图5A至图5C,图5A至图5C分别是本申请实施例提供的地图渲染方法对地图数据进行处理前后的效果对比图一至三。其中,第一原始地图501、第二原始地图503以及第三原始地图505是对地图数据直接渲染所形成的地图画面。第一优化地图502、第二优化地图504以及第三优化地图506是本申请实施例地图渲染方法对地图数据进行处理所形成的地图画面,第一优化地图502、第二优化地图504以及第三优化地图506中不存在路面重叠、标线冗余的情况。
本申请实施例提出的地图渲染方法可以应用在车载导航、地图软件中,数据编译阶段只需要做轻量级的数据标记,极大地改善了HD数据重叠区域的渲染效果,维持了实时渲染的效率,并使得地图渲染效果更准确,满足了用户的地图使用需求。
下面继续说明本申请实施例提供的地图渲染装置455的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的地图渲染装置455中的软件模块可以包括:获取模块4551,用于获取地图数据,其中,所述地图数据包括多个单元格,每个所述单元格存储至少一个元素;编译模块4552,用于根据所述地图数据中每个元素的类型,对每个所述元素中的像素进行标记处理,得到每个所述像素的标记值;划分模块4553,用于对所述地图数据中的多个单元格进行划分,得到多个压盖分片以及多个非压盖分片;模板测试模块4554,用于根据每个所述压盖分片中的所述像素的标记值,对每个所述压盖分片中的所述像素进行模板测试,得到模板测试结果;渲染模块4555,用于根据所述模板测试结果对每个所述压盖分片进行渲染处理,得到所述地图的第一部分渲染结果;所述渲染模块4555,还用于对每个所述非压盖分片进行渲染处理,得到所述地图的第二部分渲染结果。
在一些实施例中,编译模块4552,用于在所述根据所述地图数据中每个元素的类型,对每个所述元素中的像素进行标记处理,得到每个所述像素的标记值之前,获取每个所述元素的空间坐标;根据每个所述元素的空间坐标对每个所述元素进行压盖测试,得到每个所述元素的类型。
在一些实施例中,所述元素的类型包括:压盖元素以及非压盖元素,所述压盖元素是地图数据中被其他元素遮盖的元素;编译模块4552,用于根据每个所述元素的空间坐标确定任意两个所述元素之间的位置关系;响应于所述元素与其他元素之间的位置关系为被遮盖,将所述元素作为压盖元素;响应于所述元素与其他元素之间的位置关系为未被遮盖,将所述元素作为非压盖元素。
在一些实施例中,所述空间坐标包括:平面坐标以及高度;编译模块4552,用于针对每个所述元素执行以下处理:
响应于所述元素的平面坐标与其他元素的平面坐标相同,且所述元素的高度大于坐标相同的其他元素的高度,确定所述元素与其他元素之间的位置关系为未被遮盖;响应于所述元素的平面坐标与其他元素的平面坐标相同,且所述元素的高度小于坐标相同的其他元素的高度,确定所述元素与其他元素之间的位置关系为被遮盖;响应于所述元素的平面坐标与其他元素的平面坐标不相同,确定坐标不相同的所述元素与其他元素之间的位置关系为未被遮盖。
在一些实施例中,编译模块4552,用于对每个所述元素中的像素执行以下处理:
响应于所述像素所属的元素的类型为非压盖元素,将所述像素的标记值记为第一预设值;响应于所述像素所属的元素的类型为压盖元素,将所述像素的标记值记为第二预设值,其中,所述第二预设值大于所述第一预设值。
在一些实施例中,划分模块4553,用于针对每个所述单元格执行以下处理:
响应于所述单元格包括压盖元素,基于所述单元格中的压盖元素生成作为构成所述地图的表面的压盖分片;响应于所述单元格包括非压盖元素,基于所述单元格中的非压盖元素生成用于构成所述地图的表面的非压盖分片。
在一些实施例中,所述标记值包括:第一预设值与第二预设值,所述第二预设值大于所述第一预设值,且所述第一预设值与参考值相等;模板测试模块4554,用于获取每个所述压盖分片中每个所述像素的深度测试结果;针对每个所述压盖分片中每个所述像素执行以下处理:
响应于所述像素的标记值等于所述参考值,且所述像素通过深度测试,将所述像素的模板值记为第一数值;响应于所述像素的标记值等于所述参考值,且所述像素未通过深度测试,将所述像素的模板值记为所述参考值,其中,所述参考值小于所述第一数值;响应于所述像素的标记值大于所述参考值,将所述像素的模板值记为第二数值,其中,所述第一数值小于所述第二数值;将每个所述压盖分片中的所有像素的模板值作为所述模板测试结果。
在一些实施例中,渲染模块4555,用于对每个所述压盖分片中的每个所述像素执行以下处理:
响应于所述像素的模板值小于或者等于所述第一数值,对所述像素进行渲染处理;响应于所述像素的模板值大于所述第一数值,将所述像素存储为只读数据;将每个所述压盖分片的每个所述像素的渲染结果组合为所述地图的第一部分渲染结果。
在一些实施例中,所述元素的类型包括:道路元素、设置在所述道路元素上的附加元素;所述附加元素包括以下至少一种:道路标线、护栏、路障以及道路交通标志。
在一些实施例中,渲染模块4555,用于基于预设顺序对每个所述非压盖分片中的每个所述元素的像素进行渲染处理,得到第二部分渲染结果,其中,所述预设顺序为:道路元素、设置在所述道路元素上的附加元素。
在一些实施例中,获取模块4551,用于响应于针对当前位置的查看操作,获取以所述当前位置为基准的第一预配置范围内的地图数据;响应于所述当前位置基于当前方向移动,获取所述当前方向上的第二预配置范围内的地图数据;响应于针对目的地位置的查询操作,获取以所述目的地位置为基准的第三预配置范围内的地图数据。
在一些实施例中,渲染模块4555,用于在所述对每个所述非压盖分片进行渲染处理,得到所述地图的第二部分渲染结果之后,所述方法还包括:
组合所述地图的第一部分渲染结果与所述第二部分渲染结果,得到完整渲染结果;获取用于显示地图的设备的显示参数,其中,所述显示参数包括以下至少一项:地图缩放比例、地图坐标与屏幕坐标之间的转换比例;基于所述显示参数并以参考位置为基准,显示所述完整渲染结果的至少部分,其中,所述参考位置的类型包括:当前位置以及目的地位置。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的地图渲染方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令或者计算机程序,当计算机可执行指令或者计算机程序被处理器执行时,将引起处理器执行本申请实施例提供的地图渲染方法,例如,如图3A示出的地图渲染方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
综上所述,通过本申请实施例对地图数据中的元素的类型对地图中每个像素进行标记,对地图数据进行分片划分,根据不同分片的类型执行相应的渲染处理,基于标记结果对压盖分片进行模板测试,基于模板测试结果执行对压盖元素的渲染,对非压盖分片执行普通的渲染处理,两部分渲染结果结合形成最终渲染结果。相较于现有技术中对地图数据中的重叠部分进行预先删除,再执行地图渲染的方案,所需的计算资源更少,在不影响实时渲染效率的情况下,提升了地图渲染的准确性。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (14)
1.一种地图渲染方法,其特征在于,所述方法包括:
获取地图数据,其中,所述地图数据包括多个单元格,每个所述单元格存储至少一个元素;
根据所述地图数据中每个元素的类型,对每个所述元素中的像素进行标记处理,得到每个所述像素的标记值;
对所述地图数据中的多个单元格进行划分,得到多个压盖分片以及多个非压盖分片;
确定每个所述压盖分片中的所述像素的标记值,其中,所述标记值包括:第一预设值与第二预设值,所述第二预设值大于所述第一预设值,且所述第一预设值与参考值相等;
获取每个所述压盖分片中每个所述像素的深度测试结果,针对每个所述压盖分片中每个所述像素执行以下处理:响应于所述像素的标记值等于所述参考值,且所述像素通过深度测试,将所述像素的模板值记为第一数值;响应于所述像素的标记值等于所述参考值,且所述像素未通过深度测试,将所述像素的模板值记为所述参考值,其中,所述参考值小于所述第一数值;响应于所述像素的标记值大于所述参考值,将所述像素的模板值记为第二数值,其中,所述第一数值小于所述第二数值;
将每个所述压盖分片中的所有像素的模板值作为模板测试结果;
根据所述模板测试结果对每个所述压盖分片进行渲染处理,得到所述地图的第一部分渲染结果;
对每个所述非压盖分片进行渲染处理,得到所述地图的第二部分渲染结果。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述地图数据中每个元素的类型,对每个所述元素中的像素进行标记处理,得到每个所述像素的标记值之前,所述方法还包括:
获取每个所述元素的空间坐标;
根据每个所述元素的空间坐标对每个所述元素进行压盖测试,得到每个所述元素的类型。
3.根据权利要求2所述的方法,其特征在于,所述元素的类型包括:压盖元素以及非压盖元素,所述压盖元素是地图数据中被其他元素遮盖的元素;
所述根据每个所述元素的空间坐标对每个所述元素进行压盖测试,得到每个所述元素的类型,包括:
根据每个所述元素的空间坐标确定任意两个所述元素之间的位置关系;
响应于所述元素与其他元素之间的位置关系为被遮盖,将所述元素作为压盖元素;
响应于所述元素与其他元素之间的位置关系为未被遮盖,将所述元素作为非压盖元素。
4.根据权利要求3所述的方法,其特征在于,所述空间坐标包括:平面坐标以及高度;
所述根据每个所述元素的空间坐标确定任意两个所述元素之间的位置关系,包括:
针对每个所述元素执行以下处理:
响应于所述元素的平面坐标与其他元素的平面坐标相同,且所述元素的高度大于坐标相同的其他元素的高度,确定所述元素与其他元素之间的位置关系为未被遮盖;
响应于所述元素的平面坐标与其他元素的平面坐标相同,且所述元素的高度小于坐标相同的其他元素的高度,确定所述元素与其他元素之间的位置关系为被遮盖;
响应于所述元素的平面坐标与其他元素的平面坐标不相同,确定坐标不相同的所述元素与其他元素之间的位置关系为未被遮盖。
5.根据权利要求1所述的方法,其特征在于,所述根据所述地图数据中每个元素的类型,对每个所述元素中的像素进行标记处理,得到每个所述像素的标记值,包括:
对每个所述元素中的像素执行以下处理:
响应于所述像素所属的元素的类型为非压盖元素,将所述像素的标记值记为第一预设值;
响应于所述像素所属的元素的类型为压盖元素,将所述像素的标记值记为第二预设值,其中,所述第二预设值大于所述第一预设值。
6.根据权利要求1所述的方法,其特征在于,所述对所述地图数据中的多个单元格进行划分,得到多个压盖分片以及多个非压盖分片,包括:
针对每个所述单元格执行以下处理:
响应于所述单元格包括压盖元素,基于所述单元格中的压盖元素生成作为构成所述地图的表面的压盖分片;
响应于所述单元格包括非压盖元素,基于所述单元格中的非压盖元素生成用于构成所述地图的表面的非压盖分片。
7.根据权利要求1所述的方法,其特征在于,所述根据所述模板测试结果对每个所述压盖分片进行渲染处理,得到所述地图的第一部分渲染结果,包括:
对每个所述压盖分片中的每个所述像素执行以下处理:
响应于所述像素的模板值小于或者等于所述第一数值,对所述像素进行渲染处理;
响应于所述像素的模板值大于所述第一数值,将所述像素存储为只读数据;
将每个所述压盖分片的每个所述像素的渲染结果组合为所述地图的第一部分渲染结果。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述元素的类型包括:道路元素、设置在所述道路元素上的附加元素;
所述附加元素包括以下至少一种:道路标线、护栏、路障以及道路交通标志。
9.根据权利要求8所述的方法,其特征在于,所述对每个所述非压盖分片进行渲染处理,得到所述地图的第二部分渲染结果,包括:
基于预设顺序对每个所述非压盖分片中的每个所述元素的像素进行渲染处理,得到第二部分渲染结果,其中,所述预设顺序为:道路元素、设置在所述道路元素上的附加元素。
10.根据权利要求1至7任一项所述的方法,其特征在于,所述获取地图数据,包括:
响应于针对当前位置的查看操作,获取以所述当前位置为基准的第一预配置范围内的地图数据;
响应于所述当前位置基于当前方向移动,获取所述当前方向上的第二预配置范围内的地图数据;
响应于针对目的地位置的查询操作,获取以所述目的地位置为基准的第三预配置范围内的地图数据。
11.根据权利要求1至7任一项所述的方法,其特征在于,在所述对每个所述非压盖分片进行渲染处理,得到所述地图的第二部分渲染结果之后,所述方法还包括:
组合所述地图的第一部分渲染结果与所述第二部分渲染结果,得到完整渲染结果;
获取用于显示地图的设备的显示参数,其中,所述显示参数包括以下至少一项:地图缩放比例、地图坐标与屏幕坐标之间的转换比例;
基于所述显示参数并以参考位置为基准,显示所述完整渲染结果的至少部分,其中,所述参考位置的类型包括:当前位置以及目的地位置。
12.一种地图渲染装置,其特征在于,所述装置包括:
获取模块,用于获取地图数据,其中,所述地图数据包括多个单元格,每个所述单元格存储至少一个元素;
编译模块,用于根据所述地图数据中每个元素的类型,对每个所述元素中的像素进行标记处理,得到每个所述像素的标记值;
划分模块,用于对所述地图数据中的多个单元格进行划分,得到多个压盖分片以及多个非压盖分片;
模板测试模块,用于根据每个所述压盖分片中的所述像素的标记值,其中,所述标记值包括:第一预设值与第二预设值,所述第二预设值大于所述第一预设值,且所述第一预设值与参考值相等;
获取每个所述压盖分片中每个所述像素的深度测试结果,针对每个所述压盖分片中每个所述像素执行以下处理:响应于所述像素的标记值等于所述参考值,且所述像素通过深度测试,将所述像素的模板值记为第一数值;响应于所述像素的标记值等于所述参考值,且所述像素未通过深度测试,将所述像素的模板值记为所述参考值,其中,所述参考值小于所述第一数值;响应于所述像素的标记值大于所述参考值,将所述像素的模板值记为第二数值,其中,所述第一数值小于所述第二数值;
将每个所述压盖分片中的所有像素的模板值作为模板测试结果;
渲染模块,用于根据所述模板测试结果对每个所述压盖分片进行渲染处理,得到所述地图的第一部分渲染结果;
所述渲染模块,还用于对每个所述非压盖分片进行渲染处理,得到所述地图的第二部分渲染结果。
13.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令或者计算机程序时,实现权利要求1至11任一项所述的地图渲染方法。
14.一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,其特征在于,所述计算机可执行指令或者计算机程序被处理器执行时实现权利要求1至11任一项所述的地图渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311295990.1A CN117036576B (zh) | 2023-10-09 | 2023-10-09 | 地图渲染方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311295990.1A CN117036576B (zh) | 2023-10-09 | 2023-10-09 | 地图渲染方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117036576A CN117036576A (zh) | 2023-11-10 |
CN117036576B true CN117036576B (zh) | 2024-01-30 |
Family
ID=88632279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311295990.1A Active CN117036576B (zh) | 2023-10-09 | 2023-10-09 | 地图渲染方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117036576B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117830587B (zh) * | 2024-03-05 | 2024-05-28 | 腾讯科技(深圳)有限公司 | 地图标注的绘制方法、装置、计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000331185A (ja) * | 1999-05-24 | 2000-11-30 | Sony Corp | 画像処理方法、画像処理装置、及びプログラム提供媒体 |
CN103810742A (zh) * | 2012-11-05 | 2014-05-21 | 正谓有限公司 | 图像渲染方法和系统 |
CN104166958A (zh) * | 2014-07-11 | 2014-11-26 | 上海联影医疗科技有限公司 | 一种感兴趣区域的显示及操作方法 |
CN108701139A (zh) * | 2015-12-16 | 2018-10-23 | 谷歌有限责任公司 | 拆分瓦片地图渲染 |
CN110047371A (zh) * | 2018-01-15 | 2019-07-23 | 北京四维图新科技股份有限公司 | 一种矢量电子地图的渲染方法及装置 |
CN114677467A (zh) * | 2022-05-30 | 2022-06-28 | 腾讯科技(深圳)有限公司 | 地形图像渲染方法、装置、设备及计算机可读存储介质 |
CN115546331A (zh) * | 2022-09-02 | 2022-12-30 | 京东城市(北京)数字科技有限公司 | 一种数据渲染方法、装置、电子设备及计算机可读介质 |
WO2023273465A1 (zh) * | 2021-06-30 | 2023-01-05 | 华为技术有限公司 | 地图显示方法、装置与终端设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110160502B (zh) * | 2018-10-12 | 2022-04-01 | 腾讯科技(深圳)有限公司 | 地图要素提取方法、装置及服务器 |
-
2023
- 2023-10-09 CN CN202311295990.1A patent/CN117036576B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000331185A (ja) * | 1999-05-24 | 2000-11-30 | Sony Corp | 画像処理方法、画像処理装置、及びプログラム提供媒体 |
CN103810742A (zh) * | 2012-11-05 | 2014-05-21 | 正谓有限公司 | 图像渲染方法和系统 |
CN104166958A (zh) * | 2014-07-11 | 2014-11-26 | 上海联影医疗科技有限公司 | 一种感兴趣区域的显示及操作方法 |
CN108701139A (zh) * | 2015-12-16 | 2018-10-23 | 谷歌有限责任公司 | 拆分瓦片地图渲染 |
CN110047371A (zh) * | 2018-01-15 | 2019-07-23 | 北京四维图新科技股份有限公司 | 一种矢量电子地图的渲染方法及装置 |
WO2023273465A1 (zh) * | 2021-06-30 | 2023-01-05 | 华为技术有限公司 | 地图显示方法、装置与终端设备 |
CN114677467A (zh) * | 2022-05-30 | 2022-06-28 | 腾讯科技(深圳)有限公司 | 地形图像渲染方法、装置、设备及计算机可读存储介质 |
CN115546331A (zh) * | 2022-09-02 | 2022-12-30 | 京东城市(北京)数字科技有限公司 | 一种数据渲染方法、装置、电子设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117036576A (zh) | 2023-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102360660B1 (ko) | 맵 데이터 처리 방법, 컴퓨터 디바이스 및 저장 매체 | |
CN109829022B (zh) | 一种融合监控视频信息的互联网地图服务系统及构建方法 | |
CN117036576B (zh) | 地图渲染方法、装置、电子设备及存储介质 | |
US9443494B1 (en) | Generating bounding boxes for labels | |
CN113010793A (zh) | 地图数据处理的方法、装置、设备、存储介质及程序产品 | |
CN105787402A (zh) | 一种信息展示方法及装置 | |
CN116628123B (zh) | 基于空间数据库的动态切片生成方法和系统 | |
CN108255932B (zh) | 基于三维数字化平台的数字化工厂的漫游浏览方法及系统 | |
CN113378605B (zh) | 多源信息融合方法及装置、电子设备和存储介质 | |
CN107491289B (zh) | 一种窗口渲染方法及装置 | |
CN104101357A (zh) | 导航系统以及在导航系统上显示影像地图的方法 | |
CN116107576A (zh) | 页面组件的渲染方法、装置、电子设备和车辆 | |
CN112686806B (zh) | 图像拼接方法及装置、电子设备、存储介质 | |
CN111858987B (zh) | Cad图像的问题查看方法、电子设备及相关产品 | |
CN114359498A (zh) | 地图显示方法、装置、设备及计算机程序产品 | |
US20160085427A1 (en) | System and method of sharing spatial data | |
CN117152299B (zh) | 车道虚线的渲染方法、装置、设备、存储介质及程序产品 | |
CN117576255B (zh) | 作业区域确定方法、装置、计算机设备和存储介质 | |
JP2014071141A (ja) | 地図画像生成装置、地図画像生成方法及びプログラム | |
US20240169397A1 (en) | Billboard simulation and assessment system | |
CN117911574B (zh) | 道路拉直数据处理方法、装置及电子设备 | |
CN114596698B (zh) | 道路监控设备位置判断方法、装置、存储介质及设备 | |
CN106570825B (zh) | 一种基于透明图片的图片叠加系统和方法 | |
CN116193050A (zh) | 一种图像处理方法、装置、设备及存储介质 | |
CN117473033A (zh) | 电子地图中的路名显示方法、装置、设备及存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40099925 Country of ref document: HK |