CN116991921A - 地图数据加载方法、装置、计算机设备和存储介质 - Google Patents

地图数据加载方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN116991921A
CN116991921A CN202210439415.3A CN202210439415A CN116991921A CN 116991921 A CN116991921 A CN 116991921A CN 202210439415 A CN202210439415 A CN 202210439415A CN 116991921 A CN116991921 A CN 116991921A
Authority
CN
China
Prior art keywords
map
loaded
current
tile
loading
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
Application number
CN202210439415.3A
Other languages
English (en)
Inventor
王树亮
孙国玉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210439415.3A priority Critical patent/CN116991921A/zh
Priority to PCT/CN2023/080816 priority patent/WO2023207364A1/zh
Publication of CN116991921A publication Critical patent/CN116991921A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Remote Sensing (AREA)
  • Instructional Devices (AREA)

Abstract

本申请涉及一种地图数据加载方法、装置、计算机设备、存储介质和计算机程序产品,可应用于地图领域。所述方法包括:加载当前待加载地图瓦片,得到第一内存对象;基于当前依赖关系数据,确定目标地图瓦片;通过所述目标地图瓦片的第二内存对象更新所述第一内存对象,基于更新后的所述第一内存对象,确定当前加载状态;所述第二内存对象是通过对所述目标地图瓦片进行加载得到的;在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入所述基于当前依赖关系数据,确定目标地图瓦片的步骤,直至当前加载状态为加载完成状态。采用本方法能够提高地图数据加载的准确性。

Description

地图数据加载方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种地图数据加载方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着计算机技术的发展,出现了地图瓦片技术,通过一定规则将电子地图切割成相同尺寸大小的小图片,每一个小图片称为一个地图瓦片,一个地图瓦片对应一个地理区域,可以对该地理区域进行二维描述。通过将地图瓦片加载至内存中进行缓存,可以提高地图渲染时的效率。
相关技术中,在加载地图瓦片时,经常存在加载准确性低的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高地图瓦片加载准确性的地图数据加载方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一方面,本申请提供了一种地图数据加载方法。所述方法包括:加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象;基于当前待加载地图瓦片对应的当前依赖关系数据,确定所述当前待加载地图瓦片所依赖的目标地图瓦片;通过所述目标地图瓦片的第二内存对象更新所述第一内存对象,基于更新后的所述第一内存对象,确定所述当前待加载地图瓦片的当前加载状态;所述第二内存对象是通过对所述目标地图瓦片进行加载得到的;在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入所述基于当前待加载地图瓦片对应的当前依赖关系数据,确定所述当前待加载地图瓦片所依赖的目标地图瓦片的步骤,直至当前加载状态为加载完成状态。
另一方面,本申请还提供了一种地图数据加载装置。所述装置包括:加载模块,用于加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象;依赖关系获取模块,用于基于当前待加载地图瓦片对应的当前依赖关系数据,确定所述当前待加载地图瓦片所依赖的目标地图瓦片;更新模块,用于通过所述目标地图瓦片的第二内存对象更新所述第一内存对象,基于更新后的所述第一内存对象,确定所述当前待加载地图瓦片的当前加载状态;所述第二内存对象是通过对所述目标地图瓦片进行加载得到的;循环模块,用于在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入所述基于当前待加载地图瓦片对应的当前依赖关系数据,确定所述当前待加载地图瓦片所依赖的目标地图瓦片的步骤,直至当前加载状态为加载完成状态。
另一方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述地图数据加载方法的步骤。
另一方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述地图数据加载方法的步骤。
另一方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述地图数据加载方法的步骤。
上述地图数据加载方法、装置、计算机设备、存储介质和计算机程序产品,通过加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象,以生成当前待加载地图瓦片的第一内存对象,基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片,通过目标地图瓦片的第二内存对象更新第一内存对象,基于更新后的第一内存对象,确定当前待加载地图瓦片的当前加载状态,其中第二内存对象是通过对目标地图瓦片进行加载得到的,在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片的步骤,直至当前加载状态为加载完成状态,由于可以确定当前待加载地图瓦片的当前加载状态,在当前加载状态为继续加载状态的情况下,继续进入加载流程直至当前加载状态为加载完成状态,使得当前待加载瓦片的所有依赖关系都可以成功建立,确保了当前待加载瓦片的完整性,从而提高了地图瓦片加载的准确性。
附图说明
图1为一个实施例中地图数据加载方法的应用环境图;
图2为一个实施例中地图数据加载方法的流程示意图;
图3为一个实施例中地图元素的示意图;
图4为一个实施例中路口示意图;
图5为一个实施例中加载状态转换过程示意图;
图6为另一个实施例中地图数据加载方法的流程示意图;
图7为一个实施例中地图瓦片矩阵的示意图;
图8为一个实施例中生成第一内存对象的流程示意图;
图9为一个实施例中内存对象的模型架构图;
图10为一个实施例中地图瓦片加载过程示意图;
图11为一个实施例中地图数据加载装置的结构框图;
图12为一个实施例中计算机设备的内部结构图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的地图数据加载方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据,例如可以存储地图瓦片。数据存储系统可以集成在服务器104上,也可以放在云上或其他服务器上。其中,终端102可以但不限于是各种台式计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
终端102和服务器104均可单独执行本申请的地图数据加载方法,终端102和服务器104也可以协同执行本申请的地图数据加载方法。以终端102和服务器104也可以协同执行本申请的地图数据加载方法为例:终端从服务器获取当前待加载地图瓦片并存储至本地磁盘,加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象;基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片;通过目标地图瓦片的第二内存对象更新第一内存对象,基于更新后的第一内存对象,确定当前待加载地图瓦片的当前加载状态;第二内存对象是通过对目标地图瓦片进行加载得到的;在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片的步骤,直至当前加载状态为加载完成状态。
在一个实施例中,如图2所示,提供了一种地图数据加载方法,以该方法应用于计算机设备为例进行说明,该计算机设备可以是图1中的终端102,也可以是服务器104,还可以是终端和服务器组成的系统。具体地,该地图数据加载方法包括以下步骤:
步骤202,加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象。
其中,地图瓦片指的是通过一定规则将电子地图切割成相同尺寸大小的小图片,每一个小图片称为一个地图瓦片,一个地图瓦片对应一个地理区域,可以对该地理区域进行二维描述。当前待加载地图瓦片指的是当前需要加载至内存中的地图瓦片。第一内存对象指的是在用于缓存当前待加载地图瓦片的内存空间,第一内存对象可以是预设结构的内存模型。
具体地,当前待加载地图瓦片中的数据为二进制数据,计算机设备可以对当前待加载地图瓦片中的二进制数据进行反序列处理,并将反序列处理得到的数据缓存至当前待加载地图瓦片分配的内存空间中,以得到当前待加载地图瓦片的第一内存对象。
在一个实施例中,当前待加载地图瓦片存储在计算机设备的本地磁盘中,计算机设备可以直接从本地磁盘中获取到当前待加载地图瓦片,并反序列至为当前待加载地图瓦片对应的内存空间中,以得到当前待加载地图瓦片的第一内存对象。
在另一个实施例中,当前待加载地图瓦片存储其他计算机设备中,计算机设备可以通过网络从其他计算机设备下载当前待加载地图瓦片,并反序列至为当前待加载地图瓦片对应的内存空间中,以得到当前待加载地图瓦片的第一内存对象。例如,当计算机设备为终端时,终端上可以安装有地图应用的客户端,其他计算机设备可以是地图应用的服务端,终端可以通过地图应用的客户端与地图应用的服务端进行网络连接,从地图应用的服务端下载当前待加载地图瓦片。
步骤204,基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片。
其中,地图瓦片对地理区域进行描述可以是通过对地理区域内的地图元素进行描述实现的,地图元素指的是瓦片地图上的显示对象。瓦片地图通常包括多个图层,例如道路图层、楼块图层、POI(Point of Interest,兴趣点)图层,各个不同的图层包括不同的显示对象,以道路图层为例,地图元素包括但不限于车道、道路或路口面,以及附属于车道、道路或路口面地物中的一个或多个,地物包括但不限于人行横道、道路交通牌、斑马线或者红绿灯中的一个或多个。地图元素按照几何形点分布可以分为两种,一种是瓦片内部元素,另一种是跨瓦片元素,其中,瓦片内部元素指的是该地图元素的全部几何形点位于地图瓦片内,参考图3中的(a)图,其中地图元素302的全部几何形点均位于编号为557468705的地图瓦片中,该地图元素302即为瓦片内部元素;跨瓦片元素指的是该元素的部分几何形点位于地图瓦片内,参考图3中的(b)图,其中地图元素304的部分几何形点位于编号为557468705的地图瓦片中,另一部分几何形点位于编号为557468705的地图瓦片之外,该地图元素304即为跨瓦片元素。
本实施例中,假设瓦片元素不会在瓦片边界严格打断,因此对于跨瓦片元素只会存储在其中一个地图瓦片,而由于跨瓦片元素只会存储在其中一个地图瓦片,当该跨瓦片元素所跨的其他地图瓦片被加载时,该跨瓦片元素无法被加载进该跨瓦片元素所跨的其他地图瓦片,此时,该其他地图瓦片的完整性依赖于存储该跨瓦片元素的地图瓦片,即该其他地图瓦片依赖于存储该跨瓦片元素的地图瓦片,该其他地图瓦片与存储该跨瓦片元素的地图瓦片之间存在依赖关系。举例说明,如图4所示,为一个实施例中的路口示意图,参考图4,其中左边的地图瓦片中的车道被红绿灯控制,而红绿灯存储在右边的地图瓦片中,为了能够完整表达真实世界,左边的地图瓦片必须依赖于右边的地图瓦片。可以理解的是,地图瓦片内存储某一个地图元素指的是该地图瓦片内存储了该地图元素的描述信息,描述信息例如可以是属性信息。
当前待加载地图瓦片对应的依赖关系数据用于表示当前待加载瓦片对其他瓦片的依赖关系。在当前待加载地图瓦片加载至内存中后,需要根据当前待加载地图瓦片对应的各个依赖关系数据,加载当前待加载地图瓦片所依赖的各个目标地图瓦片,当前依赖关系数据表示用于确定当前需要加载的目标地图瓦片的依赖关系数据。依赖关系数据至少包括依赖瓦片元素标识,该依赖瓦片元素标识用于唯一标识所依赖的地图元素。在一个实施例中,待加载地图瓦片对应的依赖关系数据可以存储在待加载地图瓦片中。
具体地,可以预先建立地图元素的空间索引,该空间索引中,地图元素标识和该地图元素标识所标识的地图元素所存储地图瓦片标识之间建立起关联关系,当前待加载地图瓦片内可以对应一个或者多个依赖关系数据,计算机设备可以根据依赖关系数据中包括的赖瓦片元素标识从空间索引中查询关联的地图瓦片标识,将该地图瓦片标识所标识的地图瓦片确定为当前待加载地图瓦片所依赖的目标地图瓦片。
在其他实施例中,依赖关系数据中可以包括依赖瓦片元素标识和依赖瓦片元素标识对应的依赖地图瓦片标识,该依赖地图瓦片标识用于标识存储该依赖瓦片元素标识所标识的地图元素的地图瓦片,计算机设备在获取到当前待加载地图瓦片对应的当前依赖关系数据后,根据当前依赖关系数据所包括的依赖地图瓦片标识可以直接确定所依赖的目标地图瓦片。
步骤206,通过目标地图瓦片的第二内存对象更新第一内存对象,基于更新后的第一内存对象,确定当前待加载地图瓦片的当前加载状态;第二内存对象是通过对目标地图瓦片进行加载得到的。
其中,第二内存对象指的是用于缓存目标地图瓦片的内存空间,第二内存对象可以是预设结构的内存模型,第二内存对象是通过对目标地图瓦片进行加载得到的。加载状态用于对待加载地图瓦片的加载情况进行表征,加载状态包括初始加载状态、继续加载状态或者加载完成状态中的其中一种。
如图5所示,在一个实施例中,每个待加载地图瓦片最开始都是初始加载状态,当待加载地图瓦片被成功加载至内存中时,待加载地图瓦片的状态由初始加载状态切换为继续加载状态,在继续加载状态下,计算机设备可以继续加载待加载地图瓦片所依赖的目标地图瓦片,以对待加载地图瓦片进行扩展,在待加载地图瓦片所有依赖的目标地图瓦片都被成功加载至内存中并且这些目标地图瓦片的第二内存对象都对待加载地图瓦片进行了更新的情况下,计算机设备将待加载地图瓦片的加载状态由继续加载状态切换为加载完成状态。
具体地,计算机设备在第一内存对象中建立对第二内存对象中所依赖的地图元素的引用关系,以更新第一内存对象,通过该引用关系,第一内存对象可以对第二内存对象中所依赖的地图元素进行引用。进一步地,基于更新后的第一内存对象,计算机设备可以确定待加载地图瓦片的当前加载状态。
在一个实施例中,计算机设备可以将目标地图瓦片加载至内存中,以生成目标地图瓦片的第二内存对象,在目标地图瓦片被成功加载后,通过目标地图瓦片的第二内存对象更新第一内存对象。
在一个实施例中,计算机设备可以对加载完成状态的地图瓦片进行缓存,计算机设备在通过目标地图瓦片的第二内存对象更新第一内存对象时,在目标地图瓦片的当前加载状态为加载完成状态的情况下,不需要再重复加载目标地图瓦片,通过缓存中的目标地图瓦片的第二内存对象更新第一内存对象,由于对加载完成状态的地图瓦片进行缓存,可以实现数据共享,避免重复加载,提高加载效率。
在一个实施例中,计算机设备可以将当前待加载地图瓦片对应的各个依赖关系数据中所包括的依赖地图元素标识依次与第一内存对象中的地图元素标识进行比对,若每一个依赖关系数据中所包括的依赖地图元素标识在第一内存对象中均存在对应的真实内存地址,则确定当前待加载地图瓦片的当前加载状态为加载完成状态,若存在任意一个依赖关系数据中所包括的依赖地图元素标识在第一内存对象中不存在对应的真实内存地址,则确定当前待加载地图瓦片的当前加载状态为继续加载状态。
步骤208,在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片的步骤,直至当前加载状态为加载完成状态。
具体地,若计算机设备确定的当前加载状态为继续加载状态,则说明当前还存在当前待加载地图瓦片所依赖的地图瓦片元素未在第一内存对象中建立起引用关系,此时,计算机设备可以将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入步骤204,重复执行步骤204-步骤206,直至当前加载状态为加载完成状态时,结束对当前待加载地图瓦片的加载流程,此时当前待加载瓦片所依赖的所有地图瓦片元素均在第一内存对象中建立起引用关系,第一内存对象为完整的内存对象。
在一个实施例中,当前待加载地图瓦片对应的多个依赖关系数据可以按照顺序进行排列,计算机设备依次将多个依赖关系数据中各个依赖关系数据确定为当前依赖关系数据,在当前加载状态为继续加载状态的情况下,计算机设备将当前依赖关系数据的下一个排序位的依赖关系数据作为当前依赖关系数据。
在另一个实施例中,计算机设备可以随机从当前待加载地图瓦片对应的多个依赖关系数据中确定当前依赖关系数据,在基于该当前依赖关系数据更新第一内存对象后,对该当前依赖关系数据进行标记,在当前加载状态为继续加载状态的情况下,从多个依赖关系数据中选取未标记的依赖关系数据作为当前依赖关系数据对应的下一个依赖关系数据。
上述地图数据加载方法中,通过加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象,以生成当前待加载地图瓦片的第一内存对象,基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片,通过目标地图瓦片的第二内存对象更新第一内存对象,基于更新后的第一内存对象,确定当前待加载地图瓦片的当前加载状态,其中第二内存对象是通过对目标地图瓦片进行加载得到的,在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片的步骤,直至当前加载状态为加载完成状态,由于可以确定当前待加载地图瓦片的当前加载状态,在当前加载状态为继续加载状态的情况下,继续进入加载流程直至当前加载状态为加载完成状态,使得当前待加载瓦片的所有依赖关系都可以成功建立,确保了当前待加载瓦片的完整性,从而提高了地图瓦片加载的准确性。
在一个实施例中,如图6所示,提供了一种地图数据加载方法,以该方法应用于计算机设备为例进行说明,该计算机设备可以是图1中的终端102,也可以是服务器104,还可以是终端和服务器组成的系统。具体地,该地图数据加载方法包括以下步骤:
步骤602,加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象。
步骤604,基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片。
步骤606,通过目标地图瓦片的第二内存对象更新第一内存对象,基于更新后的第一内存对象,确定当前待加载地图瓦片的当前加载状态;第二内存对象是通过对目标地图瓦片进行加载得到的。
步骤608,判断当前加载状态是否为加载完成状态,若否,则进入步骤610,若是,则进入步骤612。
具体地,计算机设备判断当前加载状态是否为加载完成状态,若否,则说明当前加载状态为继续加载状态,计算机设备可以进入步骤610,继续执行对当前待加载瓦片的加载流程;若是,则说明当前待加载地图瓦片的加载流程结束,可以进入另一个地图瓦片的加载流程。
步骤610,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入步骤604。
具体地,计算机设备将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入步骤604,以重复执行步骤604至步骤608。
步骤612,判断当前待加载地图瓦片所在目标瓦片集合中是否均为加载完成状态,若否,则进入步骤614,若是,则进入步骤616。
具体地,计算机设备可以遍历目标瓦片集合,若目标瓦片集合中包含其他加载状态的待加载地图瓦片,则进入步骤614,否则,进入步骤616。这里其他状态可以是初始加载状态或者继续加载状态,在这两个加载状态下,待加载地图瓦片的加载流程都是未完成的,需要继续执行该待加载地图瓦片的加载流程。
步骤614,将当前待加载地图瓦片对应的下一个待加载地图瓦片作为当前待加载地图瓦片,并进入步骤602。
具体地,目标瓦片集合中的各个待加载地图瓦片可以进行排序,计算机设备可以将当前待加载地图瓦片的下一个排序位的待加载地图瓦片作为当前待加载地图瓦片,并进入步骤602,开始对该下一个排序位的待加载地图瓦片的加载流程。
步骤616,加载结束。
具体地,若当前待加载地图瓦片所在目标瓦片集合中的待加载地图瓦片均为加载完成状态,则说明目标瓦片集合中所有待加载瓦片的加载流程都已完成,所有的待加载地图瓦片均已完成加载,此次加载结束。
上述实施例中,通过对各个待加载地图瓦片的当前加载状态进行判断,在当前加载状态为继续加载状态的情况下,继续执行加载流程,确保目标瓦片集合所有瓦片都能成功加载,避免在某一个地图瓦片还存在未建立引用关系的依赖地图元素的情况下,对另一个地图瓦片的依赖地图元素去建立引用关系,导致加载过程混乱,从而使得部分地图瓦片的加载准确性低的问题,从而可以确保对每一个地图瓦片进行完整加载,提高了加载的准确性。
在一个实施例中,目标瓦片集合通过以下步骤确定:获取定位信息,基于定位信息确定第一瓦片编号;将第一瓦片编号所表示的第一地图瓦片作为中心瓦片,基于第一瓦片编号确定中心瓦片周围预设数量的第二地图瓦片;第一地图瓦片和第二地图瓦片组成地图瓦片矩阵;将第一地图瓦片和第二地图瓦片组成目标瓦片集合。
其中,目标瓦片集合所覆盖的瓦片用于确定整个加载流程的加载范围,考虑到跨瓦片元素所跨的地图瓦片通常为相邻的地图瓦片,因此可以借鉴九宫格思路确定加载范围,即加载范围内的各个地图瓦片组成地图瓦片矩阵,地图瓦片矩阵中,地图瓦片之间存在相邻关系,可以完整覆盖一个矩形的地图区域。举例说明,如图7所示,为一个实施例中,地图瓦片矩阵的示意图,由图7可以看出,地图瓦片矩阵为3x3的矩阵,包括编号为1-9的九个地图瓦片,其中编号为1的地图瓦片为中心瓦片,图7所示的地图瓦片矩阵可以覆盖以瓦片1为中心的一块地图区域。
具体地,计算机设备可以获取定位信息,该定位信息可以是计算机设备当前获取的定位信息,根据该定位信息计算出覆盖该定位信息所在位置的地图瓦片的第一瓦片编号,将第一瓦片编号所表示的第一地图瓦片作为中心瓦片,基于第一瓦片编号确定中心瓦片周围预设数量的第二地图瓦片的瓦片编号,将第一地图瓦片和第二地图瓦片组成目标瓦片集合。
举例说明,继续参考图7,在地图瓦片矩阵为3x3的矩阵情况下,可以将第一瓦片周围8个地图瓦片确定为第二地图瓦片,根据地图瓦片的编号规则,计算机设备可以计算出这8个地图瓦片的瓦片编码,从而可以确定这8个地图瓦片。可以理解的是,这里的瓦片编号可以用于作为地图瓦片的标识,用于唯一标识地图瓦片。
在一个实施例中,瓦片编号包括X坐标和Y坐标,计算机设备可以获取当前地图显示的缩放比例,根据定位信息中的经度和缩放比例确定第一地图瓦片的X坐标,根据定位信息中的纬度和缩放比例确定第一地图瓦片的Y坐标。
在一个实施例中,若计算机设备为安装了地图应用的客户端的终端,该终端可以将定位信息发送至地图应用的服务器,服务器基于定位信息确定第一瓦片编号,将第一瓦片编号所表示的第一地图瓦片作为中心瓦片,基于第一瓦片编号确定中心瓦片周围预设数量的第二地图瓦片,然后将第一地图瓦片和第二地图瓦片组成目标瓦片集合发送至终端,终端将目标瓦片集合存储至本地磁盘,在进行地图绘制时,从本地磁盘目标瓦片集合中各个地图瓦片。
上述实施例中,通过确定中心瓦片,将中心瓦片与周围预设数量的且能够与中心瓦片形成瓦片矩阵的地图瓦片组成目标瓦片集合,一方面可以确定定位信息所在的地图瓦片能够被完整加载,另一方面,由于地图瓦片矩阵可以完整覆盖一块以定位中心为中心的矩阵地图区域,可以提高在偏航状态下的地图绘制效率。
如上文所述,本申请实施例中,以单个地图瓦片为整个加载流程的加载流程单元,整个加载流程由多个地图瓦片的加载流程组成,各个加载流程之间互不影响,可以保证单个地图瓦片被完整加载,也就是说,本申请实施例中,具备加载较小块数据的能力,同时也具备加载较大块数据的能力,即可以根据内存大小,在不同的场景中平衡内存代价,基于此,本申请可以通过以下实施例确定目标瓦片集合中的地图瓦片数量。
在一个实施例中,基于第一瓦片编号确定中心瓦片周围预设数量的第二地图瓦片的瓦片编号包括:确定用于加载目标瓦片集合的内存容量;在内存容量大于预设容量表征值的情况下,基于第一瓦片编号确定中心瓦片周围第一预设数量的第二地图瓦片;在内存容量小于预设容量表征值的情况下,基于第一瓦片编号确定中心瓦片周围第二预设数量的第二地图瓦片;第一预设数量大于第二预设数量。
其中,预设容量表征值可以根据需要进行确定,用于表示内存容量的大小。第一预设数量大于第二预设数量。
具体地,中心瓦片是必须要加载的,那么计算机设备可以通过调整第二地图瓦片的数量来确定目标瓦片集合中的地图瓦片数量,在内存容量大于预设容量表征值的情况下,计算机设备基于第一瓦片编号确定中心瓦片周围第一预设数量的第二地图瓦片的瓦片编号,在内存容量小于预设容量表征值的情况下,计算机基于第一瓦片编号确定中心瓦片周围第二预设数量的第二地图瓦片的瓦片编号。
举例说明,假设用于执行地图数据加载方法的计算机设备为服务器,考虑到服务器的内存容量较大,可以扩大加载范围,占用更大的内存,从而使得响应速度快。假设用于执行地图数据加载方法的计算机设备为终端,考虑到终端内存容量一般较小,可以缩小加载范围,占用更小的内存,响应速度相对较慢。
上述实施例中,可以根据用于加载目标瓦片集合的内存容量,在不同的情况下,确定不同数量的第二地图瓦片,从而使得目标瓦片集合的数量可以匹配内存容量,避免出现内存资源紧张的情况。
在一个实施例中,通过目标地图瓦片的第二内存对象更新第一内存对象,包括:获取目标地图瓦片的当前加载状态;当目标地图瓦片的当前加载状态为加载完成状态时,从内存中确定目标地图瓦片的第二内存对象;通过第二内存对象更新第一内存对象。
具体地,由于目标瓦片集合中的各个待加载地图瓦片之间可能存在双向的依赖关系,即某个待加载地图瓦片A的依赖地图元素A1存储在待加载地图瓦片B中,而待加载地图瓦片B的依赖地图元素B1存储在待加载地图瓦片A中,此时,如果在加载其中一个待加载地图瓦片时,其所依赖的待加载地图瓦片为加载完成状态的地图瓦片,则计算机设备可以直接从内存中确定该加载完成状态的地图瓦片的第二内存对象,通过该第二内存对象更新第一内存对象。
举个例子,继续参考图7,假设地图瓦片1中的某个依赖地图元素存储于地图瓦片9中,地图瓦片1首先被加载完成,其状态为加载完成状态,那么在加载地图瓦片9的过程中,如果地图瓦片9的某个依赖地图元素存储于地图瓦片1中,那么计算机设备可以无需再对地图瓦片1进行二次加载,直接确定地图瓦片1的内存对象,然后通过该内存对象更新地图瓦片9的内存对象。
上述实施例中,当目标地图瓦片的当前加载状态为加载完成状态时,从内存中确定目标地图瓦片的第二内存对象,通过第二内存对象更新第一内存对象,可以在不同地图瓦片的加载流程中实现数据共享,避免重复加载数据,提高了加载效率。
在一个实施例中,如图8所示,加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象,包括以下步骤:
步骤802,在内存中生成当前待加载地图瓦片的初始内存对象。
具体地,当计算机设备开始加载当前待加载地图瓦片时,可以在内存中为当前待加载地图瓦片分配一块内存区域,作为当前待加载地图瓦片的初始内存对象,并将当前待加载地图瓦片此时的加载状态确定为初始加载状态。
步骤804,将当前待加载地图元素加载至初始内存对象中,以更新初始内存对象。
具体地,当前待加载地图瓦片包括多个待加载地图元素,计算机设备需要将这些待加载地图元素全部加载至初始内存中,当这些待加载地图元素全部加载完成后,计算机设可以当前待加载地图瓦片的加载状态确定为继续加载状态,因此,继续加载状态可以表示出当前待加载地图瓦片所包括的多个待加载地图元素是否全部加载完成。
计算机设备每次在加载一个待加载地图元素,将该待加载地图元素确定为当前待加载地图元素,将该当前待加载地图元素的二进制数据反序列至初始内存对象中,得到该地图元素的内存子对象,实现对该待加载地图元素的加载。
在一个具体地实施例中,当前待加载地图瓦片中包括的多个待加载地图元素可以按照预设的顺序进行排列,计算机设备按照顺序依次将各个待加载地图元素确定为当前待加载地图元素,并加载至初始内存对象中,以更新初始内存对象。
步骤806,基于更新后的初始内存对象,确定当前待加载地图瓦片的当前加载状态。
具体地,计算机设备可以比较初始内存对象中内存子对象和当前待加载地图瓦片中的各个待加载地图元素,若是每一个待加载地图元素均存在对应的内存子对象,则确定当前加载状态为继续加载状态,否则,确定当前加载状态为初始加载状态。
步骤808,在当前加载状态为初始加载状态的情况下,将当前待加载地图元素对应的下一个待加载地图元素作为当前待加载地图元素,并进入步骤804。
具体地,在当前加载状态为初始加载状态的情况下,说明当前待加载瓦片中还存在未被加载的待加载地图元素,因此计算机设备可以从未被加载的待加载地图元素中继续确定当前待加载地图元素,然后重复804至步骤808。
步骤810,在当前加载状态为继续加载状态的情况下,将更新后的初始内存对象作为当前待加载地图瓦片的第一内存对象。
具体地,在当前加载状态为继续加载状态的情况下,说明当前待加载瓦片中不存在未被加载的待加载地图元素,此时,当前待加载地图瓦片中存储的所有地图元素加载完成,得到当前待加载地图瓦片的第一内存对象,在继续加载状态下,计算机设备可以根据当前待加载地图瓦片的依赖关系数据继续进行加载。
上述实施例中,通过设置初始加载状态和继续加载状态,可以对当前待加载地图元素中的各个地图元素的加载进行管理,确保当前待加载地图元素中的各个地图元素均被成功加载。
在一个实施例中,多个待加载地图元素包括第一类型地图元素和第二类型地图元素,第二类型地图元素附属于对应的第一类型地图元素;将当前待加载地图元素加载至初始内存对象中,以更新初始内存对象,包括:在当前待加载地图元素为第一类型地图元素的情况下,在初始内存对象中生成与当前待加载地图元素对应的第一内存子对象;在当前待加载地图元素为第二类型地图元素的情况下,在初始内存对象中生成与当前待加载地图元素对应的第二内存子对象,并在当前待加载地图元素所附属的第二类型地图元素的第一内存子对象中,添加用于引用第二内存子对象的指针变量。
其中,待加载地图元素包括第一类型地图元素和第二类型地图元素,第二类型地图元素附属于对应的第一类型地图元素,举例说明,第一类型地图元素可以是地图中的基础元素,例如车道、道路或路口面等等,第二类型地图元素可以是地图中的附属元素,例如附属于车道、道路或路口面的地物,比如斑马线、红绿灯等等。
具体地,计算机设备在加载第一类型地图元素时,可以直接在初始内存对象中生成与当前待加载地图元素对应的第一内存子对象,在加载第二类型地图元素时,除了在初始内存对象中生成与当前待加载地图元素对应的第二内存子对象,还需要在当前待加载地图元素所附属的第二类型地图元素的第一内存子对象中,添加用于引用第二内存子对象的指针变量,该指针变量中存储了第二内存子对象的内存地址,以使得计算机设备可以通过该第一内存子对象引用该第二内存子对象,从而可以提高地图绘制过程中的效率。
举例说明,参考图9,为一个实施例中内存对象的模型架构图。本实施例中,地图瓦片中存储的为高精数据,在为高精数据分配的内存空间中,包括各个地图瓦片的内存对象,每一个地图瓦片的内存对象中,可以包括两个部分,一部分对应第一类型地图元素,另一部分对应第二类型地图元素,在第一类型地图元素下包括多个车道的内存子对象,在第一类型地图元素下包括斑马线、限速牌等地物的内存子对象,由于斑马线、限速牌等地物附属于车道,需要在车道的内存子对象中添加可以引用地物的指针变量,从而地图瓦片,第一类型地图元素以及第二类型地图元素,车道,地物形成如图9所示的内存模型结构。
上述实施例中,对于第二类型地图元素,在加载完成得到第二内存子对象后,可以在其附属的第一类型地图元素的内存对象中添加引用该第二内存子对象的指针变量,使得计算机设备可以通过该第一内存子对象引用该第二内存子对象,从而可以提高地图绘制过程中的效率。
在一个实施例中,基于更新后的初始内存对象,确定当前待加载地图瓦片的当前加载状态,包括:对于多个待加载地图元素中的任意一个待加载地图元素,当初始内存对象不存在对应的内存子对象时,确定当前待加载地图瓦片的当前加载状态为初始加载状态;对于多个待加载地图元素中的每一个待加载地图元素,当初始内存对象存在对应的内存子对象时,确定当前待加载地图瓦片的当前加载状态为继续加载状态。
具体地,计算机设备可以遍历待加载地图元素中的所有待加载地图元素,若是任意一个待加载地图元素,在初始内存对象不存在对应的内存子对象时,说明当前待加载地图瓦片中还存在未被加载的地图元素,则将当前待加载地图瓦片的当前加载状态确定为初始加载状态,若是每一个待加载地图元素,在初始内存对象均存在对应的内存子对象,则说明当前待加载地图瓦片中存储的所有地图元素完成加载,则可以将当前待加载地图瓦片的当前加载状态确定为继续加载状态,在继续加载状态下,可以通过加载依赖地图瓦片对当前待加载地图瓦片进行扩展。
上述实施例中,通过设置初始加载状态和继续加载状态对地图瓦片内存储的地图元素的加载过程进行管控,可以确保地图瓦片内存储的每一个地图元素被成功加载。
在一个实施例中,当前依赖关系数据中包括依赖地图元素标识,通过目标地图瓦片的第二内存对象更新第一内存对象,包括:基于目标地图瓦片的第二内存对象确定依赖地图元素标识对应的真实内存地址,将真实内存地址写入第一内存对象中,以更新第一内存对象;基于更新后的第一内存对象,确定当前待加载地图瓦片的当前加载状态,包括:对于当前待加载地图瓦片对应的任意一个当前依赖关系数据,在第一内存对象中不存在对应的真实内存地址的情况下,确定待加载地图瓦片的当前加载状态为继续加载状态;对于当前待加载地图瓦片对应的每一个当前依赖关系数据,在第一内存对象中均存在对应的真实内存地址的情况下,确定待加载地图瓦片的当前加载状态为加载完成状态。
其中,依赖地图元素标识用于对当前待加载地图瓦片所依赖的地图元素进行唯一标识。依赖地图元素标识对应的真实内存地址即依赖地图元素标识所标识的地图元素的实际内存地址。
具体地,本实施例中,计算机设备在确定了当前依赖关系数据后,由于当前依赖关系数据中包括依赖地图元素标识,计算机设备可以在第一内存对象中用一个空指针对该依赖地图元素标识的真实内存地址进行占位,在根据依赖关系数据确定了依赖地图元素标识所标识的地图元素所在的目标地图瓦片后,基于目标地图瓦片的第二内存对象确定依赖地图元素标识对应的真实内存地址,用该真实内存地址替换对应的空指针,从而更新第一内存对象。
举例说明,假设地图瓦片1依赖于地图瓦片2中的地图元素A,则可以首先在地图瓦片1的第一内存对象中建立地图元素A的地图元素标识和空指针之间的关联关系,在确定了地图瓦片2的第二内存对象后,根据第二内存对象可以确定地图元素A的真实内存地址,进而用该真实内存地址替换地图元素A关联的空指针即可,可以看出,由于预先建立了地图元素A的地图元素标识和空指针之间的关联关系,在将地图元素A的真实内存地址写入第一内存对象时,可以快速准确地确定需要写入的具体位置,提高了第一内存对象的更新效率,从而可以提高加载效率。
进一步,由于通过真实内存地址写入来更新第一内存对象,那么计算机设备在确定第一内存对象的当前加载状态时,可以根据依赖瓦片元素是否存在真实内存地址来进行判断,若是对于当前待加载地图瓦片对应的某一个依赖关系数据,在第一内存对象中不存在对应的真实内存地址,则确定待加载地图瓦片的当前加载状态为继续加载状态,若是对于当前待加载地图瓦片对应的每一个当前依赖关系数据,在第一内存对象中均存在对应的真实内存地址的情况下,确定待加载地图瓦片的当前加载状态为加载完成状态。
上述实施例中,通过真实内存地址来更新第一内存对象,使得第一内存对象能够准确引用所依赖的地图瓦片元素,同时可以根据依赖瓦片元素的真实内存地址是否存在于第一内存中来确定加载状态,提高了加载过程的准确性和效率。
在一个实施例中,上述地图数据加载方法还包括:在当前待加载地图瓦片中存在依赖关系数据的情况下,进入基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片的步骤;在当前待加载地图瓦片中不存在依赖关系数据的情况下,确定当前待加载地图瓦片的当前加载状态为加载完成状态。
本实施例中,待加载地图瓦片的依赖关系数据都是直接存储在该待加载地图瓦片内的,因此计算机设备在加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象之后,可以进入前置判断步骤,在该前置判断步骤中,判断当前待加载地图瓦片中是否存在依赖关系数据,若存在,进入上述步骤204执行继续加载流程,若不存在依赖关系数据,则可以直接将当前待加载地图瓦片的当前加载状态确定为加载完成状态,从而结束对当前待加载地图瓦片的加载流程。
在一个具体地实施例中,计算机设备进一步可以将当前待加载地图瓦片对应的下一个待加载地图瓦片作为前待加载地图瓦片,并重复上述步骤202,直至当前待加载地图瓦片所在目标瓦片集合中的待加载地图瓦片均为加载完成状态。
上述实施例中,在当前待加载地图瓦片中不存在依赖关系数据的情况下,确定当前待加载地图瓦片的当前加载状态为加载完成状态,可以确保不存在依赖关系数据的地图瓦片的加载流程快速结束,提高加载效率。
在一个实施例中,当前待加载地图瓦片所在目标瓦片集合中包括多个待加载地图瓦片,上述方法还包括:在待加载地图瓦片中包括依赖地图元素标识以及与依赖地图元素标识对应的依赖地图元素的情况下,调用多个线程并行加载目标瓦片集合中的待加载地图瓦片;在待加载地图瓦片中包括依赖地图元素标识且不包括依赖地图元素标识对应的依赖地图元素的情况下,进入加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象的步骤。
具体地,可以将几何形点跨越两个或两个以上地图瓦片的地图元素在瓦片边界全部打断,打断后处于不同地图瓦片内的几何形点作为一个地图元素存储于各自所在的地图瓦片内,使得地图元素不再跨地图瓦片,并且可以将地图瓦片内依赖的其他地图瓦片的地图元素存储在依赖关系数据中,即可以对地图元素进行重复,使得地图瓦片之间解耦依赖关系。比如,红绿灯a存储在地图瓦片2中,地图瓦片1中的车道被红绿灯a控制,因此通过车道获取关联红绿灯时候,必须能够获取到红绿灯a,这种情况如果在地图瓦片1中也存储红绿灯a,那么地图瓦片1和地图瓦片2的依赖关系就可以解除了。由于地图瓦片之间的依赖关系解除了,对于目标瓦片集合中的待加载地图瓦片,计算机设备可以并行独立加载。
因此,在待加载地图瓦片中包括依赖瓦片元素标识以及与依赖瓦片元素标识对应的依赖瓦片元素的情况下,计算机设备调用多个线程并行加载目标瓦片集合中的待加载地图瓦片,在待加载地图瓦片中包括依赖瓦片元素标识且不包括依赖瓦片元素标识对应的依赖瓦片元素的情况下,计算机设备可以进入上述步骤202的步骤进行加载。
上述实施例中,在待加载地图瓦片中包括依赖瓦片元素标识以及与依赖瓦片元素标识对应的依赖瓦片元素的情况下,调用多个线程并行加载目标瓦片集合中的待加载地图瓦片,提高了加载效率。
在一个实施例中,当前待加载地图瓦片对应第一精度,方法还包括:获取在第二精度下展示的地图中多个待转换地图元素标识;基于预先建立的第二精度下的地图元素标识和第一精度下的地图元素标识之间的映射关系,确定与待转换地图元素标识对应的目标地图元素标识;将目标地图元素标识所关联的地图瓦片确定为当前待加载地图瓦片,并进入加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象的步骤;基于加载完成状态下的第一内存对象进行渲染,得到第一精度下展示的地图,第一精度下展示的地图用于指示运动设备进行运动。
其中,当前待加载地图瓦片对应第一精度指的是当前待加载地图瓦片内存储的地图元素为第一精度下的地图元素,例如可以是高精地图元素。第二精度下展示的地图可以是标精地图。待转换地图元素标识用于对第二精度下展示的地图元素中需要进行精度转换的地图元素进行唯一标识。运动设备指的是可以自动运动的设备,例如具备自动驾驶功能的车辆,机器人等等。其中,第一精度大于第二精度。
本实施例中,可以预先建立高精地图元素标识和标精地图元素标识之间的映射关系,从而可以将标精地图元素转换为高精地图元素,以实现将标精地图转换为高精地图。
具体地,计算机设备可以获取标精地图中多个待转换地图元素标识,查找预先建立的高精地图元素标识和标精地图元素标识之间的映射关系,确定与待转换地图元素标识存在映射关系的高精地图元素作为目标地图元素标识,基于目标地图元素标识查找存储该目标地图元素标识所标识的高精地图元素的地图瓦片,将查找到的地图瓦片确定为待加载地图瓦片,并进入上述步骤202执行对当前待加载地图瓦片的加载流程,在当前待加载地图瓦片的加载状态为加载完成状态后,基于加载完成状态下当前待加载地图瓦片的第一内存对象进行渲染,从而可以得到高精地图,该高精地图可以指示运动设备进行运动,例如可以指示具备自动驾驶功能的车辆进行自动驾驶。
上述实施例中,可以将第二精度下展示的地图转换为第一精度下展示的地图,从而实现精确加载高精数据,此时内存中高精数据可以只是地图的一小部分,在较低的内存资源也可以正常使用。
在一个实施例中,本申请还提供一种应用场景,该应用场景适应于上述地图数据加载方法,在该应用场景中,地图元素为高精地图元素,该地图数据加载方法由自动驾驶车辆的车载终端执行,具体地,该地图数据加载方法包括以下步骤:
1、自动驾驶车辆的车载终端获取当前的定位信息,将该定位信息发送至服务器,服务器基于该定位信息确定第一瓦片编号,将第一瓦片编号所表示的第一地图瓦片作为中心瓦片,基于第一瓦片编号确定该中心瓦片周围8个第二地图瓦片,第一地图瓦片和第二地图瓦片组成九宫格的地图瓦片矩阵,将第一地图瓦片和第二地图瓦片组成目标瓦片集合,服务器将目标瓦片集合发送至车载终端,车载终端将目标瓦片集合存储至磁盘中。
2、车载终端从磁盘中对目标瓦片集合的待加载地图瓦片进行加载。参考图10,目标瓦片集合中九个待加载地图瓦片的标识分别为1,2,3,4,5,6,7,8,9,车载终端按照瓦片标识从小到大加载各个地图瓦片,地图瓦片1和周围8个地图瓦片均存在依赖关系,具体步骤如下:
2.1、按照瓦片标识从大到小依次将各个待加载地图瓦片确定为待加载地图瓦片,其中,每一个当前待加载地图瓦片处于加载完成状态时,可以将下一顺序的地图瓦片确定为当前待加载地图瓦片。
2.2、对于当前待加载地图瓦片,车载终端执行以下步骤:
1)在内存中生成当前待加载地图瓦片的初始内存对象。当前待加载地图瓦片包括多个当前待加载地图元素。
2)将当前待加载地图元素加载至初始内存对象中,以更新初始内存对象。
其中,多个待加载地图元素包括第一类型地图元素和第二类型地图元素,第二类型地图元素附属于对应的第一类型地图元素。
在当前待加载地图元素为第一类型地图元素的情况下,在初始内存对象中生成与当前待加载地图元素对应的第一内存子对象,在当前待加载地图元素为第二类型地图元素的情况下,在初始内存对象中生成与当前待加载地图元素对应的第二内存子对象,并在当前待加载地图元素所附属的第二类型地图元素的第一内存子对象中,添加用于引用第二内存子对象的指针变量。
3)基于更新后的初始内存对象,确定当前待加载地图瓦片的当前加载状态。
对于多个待加载地图元素中的任意一个待加载地图元素,当初始内存对象不存在对应的内存子对象时,确定当前待加载地图瓦片的当前加载状态为初始加载状态;对于多个待加载地图元素中的每一个待加载地图元素,当初始内存对象存在对应的内存子对象时,确定当前待加载地图瓦片的当前加载状态为继续加载状态。
4)在当前加载状态为初始加载状态的情况下,将当前待加载地图元素对应的下一个待加载地图元素作为当前待加载地图元素,并进入步骤2)继续执行,直至当前加载状态为继续加载状态,得到当前待加载地图瓦片的第一内存对象。
在当前加载状态为继续加载状态的情况下,进入步骤(5)继续执行。
5)在当前待加载地图瓦片中存在依赖关系数据的情况下,进入步骤(6);在当前待加载地图瓦片中不存在依赖关系数据的情况下,确定当前待加载地图瓦片的当前加载状态为加载完成状态,并进入步骤9)。
6)基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片。
7)通过目标地图瓦片的第二内存对象更新第一内存对象,基于更新后的第一内存对象,确定当前待加载地图瓦片的当前加载状态;第二内存对象是通过对目标地图瓦片进行加载得到的。
具体地,基于目标地图瓦片的第二内存对象确定依赖地图元素标识对应的真实内存地址,将真实内存地址写入第一内存对象中,以更新第一内存对象。
对于当前待加载地图瓦片对应的任意一个当前依赖关系数据,在第一内存对象中不存在对应的真实内存地址的情况下,确定待加载地图瓦片的当前加载状态为继续加载状态;对于当前待加载地图瓦片对应的每一个当前依赖关系数据,在第一内存对象中均存在对应的真实内存地址的情况下,确定待加载地图瓦片的当前加载状态为加载完成状态。
举例说明,参考图10中的(a)图,当地图瓦片1中的全部地图元素均被加载至内存中时,由于地图瓦片1和依赖的地图元素没有建立关系,此时地图瓦片1是不完整的,处于继续加载状态,参考图10中的(b)图,地图瓦片1和周围8个地图瓦片均存在依赖关系,可以将地图瓦片2-9均加载至内存中,并根据地图瓦片2-9的内存对象确定所依赖的各个地图元素的真实内存地址,将这些真实内存地址写入地图瓦片1的内存对象中,以构建地图瓦片1对其他8个地图瓦片的依赖关系,此时,地图瓦片1是完整的,处于加载完成状态。
可以理解的是,地图瓦片元素之间的依赖关系是单向构建的,即在加载地图瓦片1时,只会构建地图瓦片1对其他地图瓦片的依赖关系,而对于地图瓦片2-9对地图瓦片1的依赖关系,会在将地图瓦片2-9依次作为当前待加载地图瓦片时构建,继续参考图10中的(b)图,地图瓦片1是完整的,但是地图瓦片2-9是不完整,处于继续加载状态。
还可以理解的是,在加载地图瓦片2-9时,若其中一个地图瓦片对地图瓦片1有依赖关系,此时,由于地图瓦片1已经处于加载完成状态,那么该地图瓦片可以直接根据地图瓦片1中的内存对象确定所依赖的地图瓦片的真实内存地址,不需要再重复加载地图瓦片1,从而可以实现数据共享,在节省内存资源的同时提高加载效率。
8)在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入步骤6),直至当前加载状态为加载完成状态。
在当前加载状态为继续加载状态的情况下,结束对当前待加载地图瓦片的加载流程。
9)将当前待加载地图瓦片对应的下一个待加载地图瓦片作为当前待加载地图瓦片。
具体地,对于每一个当前待加载地图瓦片,重复步骤1)至步骤9),直至目标瓦片集合中的地图瓦片1-9这九个地图瓦片均为加载完成状态。
2.3、基于加载完成状态下的目标瓦片集合进行渲染,得到高精地图,车载终端可以根据该高精地图控制自动驾驶车辆进行自动驾驶。
在一个实施例中,本申请还提供一种应用场景,该应用场景适应于上述地图数据加载方法,在该应用场景中,地图元素为高精地图元素,该地图数据加载方法由自动驾驶车辆的车载终端执行,具体地,该地图数据加载方法包括以下步骤:
车载终端当前展示的地图为标精地图,车载终端获取当前展示的标精地图中各个待转换地图元素标识,并发送至服务器,服务器执行以下步骤:
根据待转换地图元素标识,查找预先建立的标精地图元素标识和高精地图元素标识之间的映射关系,确定与待转换地图元素标识对应的目标地图元素标识,将目标地图元素标识所关联的地图瓦片确定为当前待加载地图瓦片,并通过上文实施例提供的步骤1)-步骤8)执行对当前待加载地图瓦片的加载流程,以得到加载完成状态下,当前待加载地图瓦片对应的内存对象,将该内存对象发送至车载终端,车载终端将可以该内存对象进行缓存,并基于该内存对象渲染得到高精地图,车载终端可以根据该高精地图控制自动驾驶车辆进行自动驾驶。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的地图数据加载方法的地图数据加载装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个地图数据加载装置实施例中的具体限定可以参见上文中对于地图数据加载方法的限定,在此不再赘述。
在一个实施例中,如图11所示,提供了一种地图数据加载装置1100,包括:
加载模块1102,用于加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象;
依赖关系获取模块1104,用于基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片;
更新模块1106,用于通过目标地图瓦片的第二内存对象更新第一内存对象,基于更新后的第一内存对象,确定当前待加载地图瓦片的当前加载状态;第二内存对象是通过对目标地图瓦片进行加载得到的;
循环模块1108,用于在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片的步骤,直至当前加载状态为加载完成状态。
上述地图数据加载装置,通过加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象,以生成当前待加载地图瓦片的第一内存对象,基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片,通过目标地图瓦片的第二内存对象更新第一内存对象,基于更新后的第一内存对象,确定当前待加载地图瓦片的当前加载状态,其中第二内存对象是通过对目标地图瓦片进行加载得到的,在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片的步骤,直至当前加载状态为加载完成状态,由于可以确定当前待加载地图瓦片的当前加载状态,在当前加载状态为继续加载状态的情况下,继续进入加载流程直至当前加载状态为加载完成状态,使得当前待加载瓦片的所有依赖关系都可以成功建立,确保了当前待加载瓦片的完整性,从而提高了地图瓦片加载的准确性。
在一个实施例中,上述装置还包括:循环加载模块,用于将当前待加载地图瓦片对应的下一个待加载地图瓦片作为当前待加载地图瓦片,并进入加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象的步骤,直至当前待加载地图瓦片所在目标瓦片集合中的待加载地图瓦片均为加载完成状态。
在一个实施例中,上述装置还包括:目标瓦片集合确定模块,用于获取定位信息,基于定位信息确定第一瓦片编号;将第一瓦片编号所表示的第一地图瓦片作为中心瓦片,基于第一瓦片编号确定中心瓦片周围预设数量的第二地图瓦片;第一地图瓦片和第二地图瓦片组成地图瓦片矩阵;将第一地图瓦片和第二地图瓦片组成目标瓦片集合。
在一个实施例中,目标瓦片集合确定模块,还用于确定用于加载目标瓦片集合的内存容量;在内存容量大于预设容量表征值的情况下,基于第一瓦片编号确定中心瓦片周围第一预设数量的第二地图瓦片;在内存容量小于预设容量表征值的情况下,基于第一瓦片编号确定中心瓦片周围第二预设数量的第二地图瓦片;第一预设数量大于第二预设数量。
在一个实施例中,更新模块,还用于获取目标地图瓦片的当前加载状态;当目标地图瓦片的当前加载状态为加载完成状态时,从内存中确定目标地图瓦片的第二内存对象;通过第二内存对象更新第一内存对象。
在一个实施例中,当前待加载地图瓦片包括多个待加载地图元素,加载模块,还用于在内存中生成当前待加载地图瓦片的初始内存对象;将当前待加载地图元素加载至初始内存对象中,以更新初始内存对象;基于更新后的初始内存对象,确定当前待加载地图瓦片的当前加载状态;在当前加载状态为初始加载状态的情况下,将当前待加载地图元素对应的下一个待加载地图元素作为当前待加载地图元素,并进入将当前待加载地图元素加载至初始内存对象中,以更新初始内存对象的步骤,直至当前加载状态为继续加载状态,得到当前待加载地图瓦片的第一内存对象。
在一个实施例中,多个待加载地图元素包括第一类型地图元素和第二类型地图元素,第二类型地图元素附属于对应的第一类型地图元素;加载模块,还用于在当前待加载地图元素为第一类型地图元素的情况下,在初始内存对象中生成与当前待加载地图元素对应的第一内存子对象;在当前待加载地图元素为第二类型地图元素的情况下,在初始内存对象中生成与当前待加载地图元素对应的第二内存子对象,并在当前待加载地图元素所附属的第二类型地图元素的第一内存子对象中,添加用于引用第二内存子对象的指针变量。
在一个实施例中,更新模块,还用于对于多个待加载地图元素中的任意一个待加载地图元素,当初始内存对象不存在对应的内存子对象时,确定当前待加载地图瓦片的当前加载状态为初始加载状态;对于多个待加载地图元素中的每一个待加载地图元素,当初始内存对象存在对应的内存子对象时,确定当前待加载地图瓦片的当前加载状态为继续加载状态。
在一个实施例中,当前依赖关系数据中包括依赖地图元素标识,更新模块,还用于基于目标地图瓦片的第二内存对象确定依赖地图元素标识对应的真实内存地址,将真实内存地址写入第一内存对象中,以更新第一内存对象;对于当前待加载地图瓦片对应的任意一个当前依赖关系数据,在第一内存对象中不存在对应的真实内存地址的情况下,确定待加载地图瓦片的当前加载状态为继续加载状态;对于当前待加载地图瓦片对应的每一个当前依赖关系数据,在第一内存对象中均存在对应的真实内存地址的情况下,确定待加载地图瓦片的当前加载状态为加载完成状态。
在一个实施例中,上述装置还包括:依赖关系数据识别模块,用于在当前待加载地图瓦片中存在依赖关系数据的情况下,进入基于当前待加载地图瓦片对应的当前依赖关系数据,确定当前待加载地图瓦片所依赖的目标地图瓦片的步骤;在当前待加载地图瓦片中不存在依赖关系数据的情况下,确定当前待加载地图瓦片的当前加载状态为加载完成状态。
在一个实施例中,当前待加载地图瓦片所在目标瓦片集合中包括多个待加载地图瓦片,上述装置还包括:并行加载模块,用于在待加载地图瓦片中包括依赖地图元素标识以及与依赖地图元素标识对应的依赖地图元素的情况下,调用多个线程并行加载目标瓦片集合中的待加载地图瓦片;在待加载地图瓦片中包括依赖地图元素标识且不包括依赖地图元素标识对应的依赖地图元素的情况下,进入加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象的步骤。
在一个实施例中,当前待加载地图瓦片对应第一精度,上述装置还包括:精度转换模块,用于获取在第二精度下展示的地图中多个待转换地图元素标识;基于预先建立的第二精度下的地图元素标识和第一精度下的地图元素标识之间的映射关系,确定与待转换地图元素标识对应的目标地图元素标识;将目标地图元素标识所关联的地图瓦片确定为当前待加载地图瓦片,并进入加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象的步骤;基于加载完成状态下的第一内存对象进行渲染,得到第一精度下展示的地图,第一精度下展示的地图用于指示运动设备进行运动;其中,第一精度大于第二精度。
上述地图数据加载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储地图瓦片数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种地图数据加载方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图13所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种地图数据加载方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置,显示屏可以是液晶显示屏或电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图12、图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述地图数据加载方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述地图数据加载方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述地图数据加载方法的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (16)

1.一种地图数据加载方法,其特征在于,所述方法包括:
加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象;
基于当前待加载地图瓦片对应的当前依赖关系数据,确定所述当前待加载地图瓦片所依赖的目标地图瓦片;
通过所述目标地图瓦片的第二内存对象更新所述第一内存对象,基于更新后的所述第一内存对象,确定所述当前待加载地图瓦片的当前加载状态;所述第二内存对象是通过对所述目标地图瓦片进行加载得到的;
在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入所述基于当前待加载地图瓦片对应的当前依赖关系数据,确定所述当前待加载地图瓦片所依赖的目标地图瓦片的步骤,直至当前加载状态为加载完成状态。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将当前待加载地图瓦片对应的下一个待加载地图瓦片作为当前待加载地图瓦片,并进入所述加载所述当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象的步骤,直至当前待加载地图瓦片所在目标瓦片集合中的待加载地图瓦片均为加载完成状态。
3.根据权利要求2所述的方法,其特征在于,所述目标瓦片集合通过以下步骤确定:
获取定位信息,基于所述定位信息确定第一瓦片编号;
将所述第一瓦片编号所表示的第一地图瓦片作为中心瓦片,基于所述第一瓦片编号确定所述中心瓦片周围预设数量的第二地图瓦片;所述第一地图瓦片和所述第二地图瓦片组成地图瓦片矩阵;
将所述第一地图瓦片和所述第二地图瓦片组成目标瓦片集合。
4.根据权利要求3所述的方法,其特征在于,所述基于所述第一瓦片编号确定所述中心瓦片周围预设数量的第二地图瓦片包括:
确定用于加载所述目标瓦片集合的内存容量;
在所述内存容量大于预设容量表征值的情况下,基于所述第一瓦片编号确定所述中心瓦片周围第一预设数量的第二地图瓦片;
在所述内存容量小于预设容量表征值的情况下,基于所述第一瓦片编号确定所述中心瓦片周围第二预设数量的第二地图瓦片;
所述第一预设数量大于所述第二预设数量。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述通过所述目标地图瓦片的第二内存对象更新所述第一内存对象,包括:
获取所述目标地图瓦片的当前加载状态;
当所述目标地图瓦片的当前加载状态为加载完成状态时,从内存中确定所述目标地图瓦片的第二内存对象;
通过所述第二内存对象更新所述第一内存对象。
6.根据权利要求1所述的方法,其特征在于,当前待加载地图瓦片包括多个待加载地图元素,所述加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象,包括:
在内存中生成当前待加载地图瓦片的初始内存对象;
将当前待加载地图元素加载至初始内存对象中,以更新所述初始内存对象;
基于更新后的初始内存对象,确定所述当前待加载地图瓦片的当前加载状态;
在当前加载状态为初始加载状态的情况下,将当前待加载地图元素对应的下一个待加载地图元素作为当前待加载地图元素,并进入所述将当前待加载地图元素加载至初始内存对象中,以更新所述初始内存对象的步骤,直至当前加载状态为继续加载状态,得到当前待加载地图瓦片的第一内存对象。
7.根据权利要求6所述的方法,其特征在于,所述多个待加载地图元素包括第一类型地图元素和第二类型地图元素,所述第二类型地图元素附属于对应的第一类型地图元素;所述将当前待加载地图元素加载至初始内存对象中,以更新所述初始内存对象,包括:
在当前待加载地图元素为第一类型地图元素的情况下,在初始内存对象中生成与当前待加载地图元素对应的第一内存子对象;
在当前待加载地图元素为第二类型地图元素的情况下,在初始内存对象中生成与当前待加载地图元素对应的第二内存子对象,并在当前待加载地图元素所附属的第二类型地图元素的第一内存子对象中,添加用于引用所述第二内存子对象的指针变量。
8.根据权利要求6所述的方法,其特征在于,所述基于更新后的初始内存对象,确定所述当前待加载地图瓦片的当前加载状态,包括:
对于所述多个待加载地图元素中的任意一个待加载地图元素,当初始内存对象不存在对应的内存子对象时,确定所述当前待加载地图瓦片的当前加载状态为初始加载状态;
对于所述多个待加载地图元素中的每一个待加载地图元素,当初始内存对象存在对应的内存子对象时,确定所述当前待加载地图瓦片的当前加载状态为继续加载状态。
9.根据权利要求1所述的方法,其特征在于,当前依赖关系数据中包括依赖地图元素标识,所述通过所述目标地图瓦片的第二内存对象更新所述第一内存对象,包括:
基于所述目标地图瓦片的第二内存对象确定所述依赖地图元素标识对应的真实内存地址,将所述真实内存地址写入所述第一内存对象中,以更新所述第一内存对象;
所述基于更新后的所述第一内存对象,确定所述当前待加载地图瓦片的当前加载状态,包括:
当当前待加载地图瓦片对应的任意一个当前依赖关系数据,在第一内存对象中不存在对应的真实内存地址时,确定待加载地图瓦片的当前加载状态为继续加载状态;
当当前待加载地图瓦片对应的每一个当前依赖关系数据,在第一内存对象中均存在对应的真实内存地址时,确定待加载地图瓦片的当前加载状态为加载完成状态。
10.根据权利要求1至9中任意一项所述的方法,其特征在于,在所述加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象之后,所述方法还包括:
在当前待加载地图瓦片中存在依赖关系数据的情况下,进入所述基于当前待加载地图瓦片对应的当前依赖关系数据,确定所述当前待加载地图瓦片所依赖的目标地图瓦片的步骤;
在当前待加载地图瓦片中不存在依赖关系数据的情况下,确定所述当前待加载地图瓦片的当前加载状态为加载完成状态。
11.根据权利要求1至9中任意一项所述的方法,其特征在于,当前待加载地图瓦片所在目标瓦片集合中包括多个待加载地图瓦片,所述方法还包括:
在所述待加载地图瓦片中包括依赖地图元素标识以及与所述依赖地图元素标识对应的依赖地图元素的情况下,调用多个线程并行加载所述目标瓦片集合中的待加载地图瓦片;
在所述待加载地图瓦片中包括依赖地图元素标识且不包括所述依赖地图元素标识对应的依赖地图元素的情况下,进入所述加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象的步骤。
12.根据权利要求1至9中任意一项所述的方法,其特征在于,所述当前待加载地图瓦片对应第一精度,所述方法还包括:
获取在第二精度下展示的地图中的多个待转换地图元素标识;
基于预先建立的所述第二精度下的地图元素标识和第一精度下的地图元素标识之间的映射关系,确定与所述待转换地图元素标识对应的目标地图元素标识;
将所述目标地图元素标识所关联的地图瓦片确定为当前待加载地图瓦片,并进入所述加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象的步骤;
基于加载完成状态下的第一内存对象进行渲染,得到第一精度下展示的地图,所述第一精度下展示的地图用于指示运动设备进行运动;
其中,第一精度大于第二精度。
13.一种地图数据加载装置,其特征在于,所述装置包括:
加载模块,用于加载当前待加载地图瓦片,以生成当前待加载地图瓦片的第一内存对象;
依赖关系获取模块,用于基于当前待加载地图瓦片对应的当前依赖关系数据,确定所述当前待加载地图瓦片所依赖的目标地图瓦片;
更新模块,用于通过所述目标地图瓦片的第二内存对象更新所述第一内存对象,基于更新后的所述第一内存对象,确定所述当前待加载地图瓦片的当前加载状态;所述第二内存对象是通过对所述目标地图瓦片进行加载得到的;
循环模块,用于在当前加载状态为继续加载状态的情况下,将当前依赖关系数据对应的下一个依赖关系数据作为当前依赖关系数据,并进入所述基于当前待加载地图瓦片对应的当前依赖关系数据,确定所述当前待加载地图瓦片所依赖的目标地图瓦片的步骤,直至当前加载状态为加载完成状态。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述的方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
16.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
CN202210439415.3A 2022-04-25 2022-04-25 地图数据加载方法、装置、计算机设备和存储介质 Pending CN116991921A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210439415.3A CN116991921A (zh) 2022-04-25 2022-04-25 地图数据加载方法、装置、计算机设备和存储介质
PCT/CN2023/080816 WO2023207364A1 (zh) 2022-04-25 2023-03-10 地图数据加载方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210439415.3A CN116991921A (zh) 2022-04-25 2022-04-25 地图数据加载方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN116991921A true CN116991921A (zh) 2023-11-03

Family

ID=88517298

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210439415.3A Pending CN116991921A (zh) 2022-04-25 2022-04-25 地图数据加载方法、装置、计算机设备和存储介质

Country Status (2)

Country Link
CN (1) CN116991921A (zh)
WO (1) WO2023207364A1 (zh)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9355484B2 (en) * 2014-03-17 2016-05-31 Apple Inc. System and method of tile management
CN112800164A (zh) * 2021-03-17 2021-05-14 统信软件技术有限公司 一种地图加载方法、装置、计算设备及可读存储介质
CN114238528A (zh) * 2021-11-09 2022-03-25 深圳云天励飞技术股份有限公司 一种地图加载方法、装置、电子设备及存储介质
CN114064675A (zh) * 2021-11-19 2022-02-18 湖北亿咖通科技有限公司 地图数据的更新方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2023207364A1 (zh) 2023-11-02

Similar Documents

Publication Publication Date Title
CN111246376B (zh) 用于确定目标是否属于目标地理围栏的系统和方法
CN114020756B (zh) 遥感影像实时地图服务发布方法和装置
WO2021232278A1 (zh) 地图获取方法、装置、计算机设备和存储介质
JP4885558B2 (ja) エンティティルックアップシステム
US20090051702A1 (en) Process and apparatus for generating map data in real time
CN112231426A (zh) 一种基于矢量瓦片点数据的更新方法、系统、介质及终端
CN110046210B (zh) 地图信息更新方法、装置、电子设备和存储介质
CN105677843A (zh) 一种自动获取宗地四至属性的方法
CN115858659A (zh) 矢量轨迹的显示方法、装置、计算机设备、存储介质
CN116991921A (zh) 地图数据加载方法、装置、计算机设备和存储介质
CN115408382B (zh) 面向大规模卫星数据的矢量空间信息网格化存储管理方法
CN116363324A (zh) 一种态势地图二三维一体化渲染方法
CN112966041B (zh) 数据处理方法、装置、设备及存储介质
CN114327395A (zh) 网页设计方法、装置、计算机设备、存储介质和产品
CN114022518A (zh) 图像的光流信息获取方法、装置、设备和介质
US20230289045A1 (en) Generating aggregate data geospatial grid cells for encoding in vector tiles
CN112784533B (zh) 车道组编号生成方法、装置、计算机设备和存储介质
CN113744544B (zh) 一种参数配置方法、装置及设备
CN117146854A (zh) 配置车辆移动轨迹的方法及其相关装置
CN116226145A (zh) 数据交互方法、装置、计算机设备和存储介质
CN116883563A (zh) 标注点渲染方法、装置、计算机设备、存储介质
JPS61200586A (ja) 図面の表示方式
CN115512065A (zh) 一种基于分块化的大规模场景下实时地图构建方法和装置
CN117312653A (zh) 服务策略确定方法、装置、计算机设备和存储介质
CN116758144A (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