逻辑地图的数据处理方法、装置、电子设备及存储介质与流程

文档序号:16473555发布日期:2019-01-02 23:21阅读:238来源:国知局
逻辑地图的数据处理方法、装置、电子设备及存储介质与流程

本发明涉及数据处理技术领域,特别是涉及一种逻辑地图的数据处理方法、装置、电子设备及存储介质。



背景技术:

体素可以理解为是像素的三维版本,如图1所示,图1中的任一个立方体都是一个体素。可以基于体素构建包含三维物体的逻辑地图,具体可以包括基于体素构建的地形、建筑、植被,以及其他静态物件,例如,游戏领域的逻辑地图。体素的数组是用来表示一个栅格化的三维空间的,体素的数组除了可以包括该体素的位置、大小之外,还可以包括该体素的材质或其他属性值。

逻辑地图体素的分辨率越高,逻辑地图的细致程度就越高,显示效果越好。但是,这样也会大大增加体素的数量。而现有技术中,将逻辑地图的数据存储就是将各个体素的数组都进行存储,体素的数量很大就导致所需的存储容量很大。例如,从每立方米一个体素提升至每立方厘米一个体素,这样体素的数量是以立方级数量增长的,相应的所需存储的数组的数量也是以立方级数量增长的。

由上可知,现有技术中,存储逻辑地图的数据时,直接将各个体素的数组进行存储,导致所需的存储容量较大,浪费存储资源。



技术实现要素:

本发明实施例的目的在于提供一种逻辑地图的数据处理方法、装置、电子设备及存储介质,以节省存储资源。具体技术方案如下:

第一方面,本发明实施例提供了一种逻辑地图的数据处理方法,所述方法包括:

获取目标模型的体素在逻辑地图的地平面内投影形成的目标网格区域;

获取所述目标网格区域中每个网格对应的特征数组,特征数组是对应网格在竖直方向上对应的各个体素的数组的组合;

对每个网格进行编号,且针对同一特征数组对应的网格采用同一编号;

存储网格位置与编号的对应关系,并存储编号与特征数组的对应关系。

可选的,所述对每个网格进行编号,且针对同一特征数组对应的网格采用同一编号的步骤,包括:

按照预设的编号顺序,从未编号的网格中,确定当前待编号网格;

从哈希表中查找,是否存在与所述当前待编号网格对应的当前特征数组相同的特征数组;

如果存在,将所述当前待编号网格的编号设置为针对所述当前特征数组对应的网格已使用的编号;

如果不存在,按照预设的编号规则,确定一个新的编号,并将所述当前待编号网格的编号设置为所确定的新的编号;

返回按照网格的编号顺序,确定当前待编号网格的步骤。

可选的,所述按照预设的编号规则,确定一个新的编号,并将所述当前待编号网格的编号设置为所确定的新的编号的步骤,包括:

根据当前已用的最大编号,将最大编号加上所述当前已用的最大编号对应网格对应的特征数组所占用的内存大小,获得一个编号,将获得的编号确定为新的编号;

将所述当前待编号网格的编号设置为所确定的新的编号;

所述存储编号与特征数组的对应关系的步骤,包括:

按照对应编号从小到大的顺序,存储特征数组;

存储编号与各个特征数组相对于最小编号对应的特征数组的内存地址偏移的对应关系。

可选的,所述存储网格位置与编号的对应关系的步骤,包括:

利用lzo压缩方法对网格位置与编号的对应关系进行压缩并存储;

所述存储编号与特征数组的对应关系的步骤,包括:

利用lzo压缩方法对编号与的特征数组的对应关系进行压缩并存储。

可选的,所述获取目标模型的体素在逻辑地图的地平面内投影形成的目标网格区域的步骤,包括:

对目标模型进行体素划分;

将目标模型的体素在逻辑地图的地平面内投影,得到目标网格区域;

所述获取所述目标网格区域中每个网格对应的特征数组的步骤,包括:

根据目标模型对应的原始数据,计算目标模型的各个体素的数组;

根据各个体素的数组,确定每个网格对应的特征数组。

可选的,所述各个体素的数组包括对应体素的位置、大小,以及材质和/或透明度。

可选的,所述各个体素的数组包括对应体素的上坐标和下坐标。

可选的,所述目标网格区域中的网格包括以下至少一种:

正方形网格、长方形网格和三角形网格。

第二方面,本发明实施例提供了一种逻辑地图的数据处理装置,所述装置包括:

第一获取模块,用于获取目标模型的体素在逻辑地图的地平面内投影形成的目标网格区域;

第二获取模块,用于获取所述目标网格区域中每个网格对应的特征数组,特征数组是对应网格在竖直方向上对应的各个体素的数组的组合;

编号模块,用于对每个网格进行编号,且针对同一特征数组对应的网格采用同一编号;

第一存储模块,用于存储网格位置与编号的对应关系;

第二存储模块,用于存储编号与特征数组的对应关系。

可选的,所述编号模块具体包括:第一确定单元、查找单元、第一编号单元和第二编号单元;

所述第一确定单元,用于按照预设的编号顺序,从未编号的网格中,确定当前待编号网格;

所述查找单元,用于从哈希表中查找,是否存在与所述当前待编号网格对应的当前特征数组相同的特征数组;

所述第一编号单元,用于当查找单元的查找结果为存在时,将所述当前待编号网格的编号设置为针对所述当前特征数组对应的网格已使用的编号;并触发所述确定单元执行照预设的编号顺序,从未编号的网格中,确定当前待编号网格;

所述第二编号单元,用于当查找单元的查找结果为不存在时,按照预设的编号规则,确定一个新的编号,并将所述当前待编号网格的编号设置为所确定的新的编号,并触发所述确定单元执行照预设的编号顺序,从未编号的网格中,确定当前待编号网格。

可选的,所述所述第二编号单元具体包括:处理单元和设置单元;

所述处理单元,用于根据当前已用的最大编号,将最大编号加上所述当前已用的最大编号对应网格对应的特征数组所占用的内存大小,获得一个编号,将获得的编号确定为新的编号;

所述设置单元,用于将所述当前待编号网格的编号设置为所确定的新的编号;

所述第二存储模块包括:第一存储单元和第二存储单元;

所述第一存储单元,用于按照对应编号从小到大的顺序,存储特征数组;

所述第二存储单元,用于存储编号与各个特征数组相对于最小编号对应的特征数组的内存地址偏移的对应关系。

可选的,所述第一存储模块具体用于:利用lzo压缩装置对网格位置与编号的对应关系进行压缩并存储;

所述第二存储模块具体用于:利用lzo压缩装置对编号与的特征数组的对应关系进行压缩并存储。

可选的,所述第一获取模块包括:划分单元和投影模块;

所述划分单元,用于对目标模型进行体素划分;

所述投影模块,用于将目标模型的体素在逻辑地图的地平面内投影,得到目标网格区域;

所述第二获取模块包括:计算单元和第二确定单元;

所述计算单元,用于根据目标模型对应的原始数据,计算目标模型的各个体素的数组;

所述第二确定单元,用于根据各个体素的数组,确定每个网格对应的特征数组。

可选的,所述各个体素的数组包括对应体素的位置、大小,以及材质和/或透明度。

可选的,所述各个体素的数组包括对应体素的上坐标和下坐标。

可选的,所述目标网格区域中的网格包括以下至少一种:

正方形网格、长方形网格和三角形网格。

第三方面,本发明实施例提供了一种电子设备,其特征在于,包括处理器和存储器,其中:

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一逻辑地图的数据处理方法所述的方法步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述任一逻辑地图的数据处理方法所述的方法步骤。

第五方面,本发明实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一逻辑地图的数据处理方法所述的方法步骤。

第六方面,本发明实施例提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述任一逻辑地图的数据处理方法所述的方法步骤。

本发明实施例提供了一种逻辑地图的数据处理方法、装置、电子设备及存储介质,首先,获取目标模型的体素在逻辑地图的地平面内投影形成的目标网格区域;再获取目标网格区域中每个网格对应的特征数组,特征数组是对应网格在竖直方向上对应的各个体素的数组的组合;然后,对每个网格进行编号,且针对同一特征数组对应的网格采用同一编号;最后,存储网格位置与编号的对应关系;存储编号与特征数组的对应关系。

通过对每个网格进行编号,存储每个编号对应的特征数组,实现仅存储去重后的特征数组,而且通过存储网格位置与编号的对应关系,以及编号与特征数组的对应关系,也就相当于将每个网格对应特征数组存储起来。而且,特征数组是数组的组合,也就相当于将各个体素的数组都存储了起来。相比于直接将各个体素的数组存储起来,仅存储网格位置与编号的对应关系,编号与特征数组的对应关系,实现了压缩存储,可以节省存储资源。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为体素的结构示意图;

图2为本发明实施例提供的一种逻辑地图的数据处理方法的流程示意图;

图3为目标网格区域与特征数组的映射关系示意图;

图4为本发明实施例提供的针对网格编号的流程示意图;

图5为本发明实施例提供的一种逻辑地图的数据处理装置的结构示意图;

图6为本发明实施例提供的针对网格编号的模块的结构示意图;

图7为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现有技术中,存储逻辑地图的数据时,直接将各个体素的数组进行存储,导致所需的存储容量较大,浪费存储资源。为了解决该技术问题,本发明实施例提供了一种逻辑地图的数据处理方法、装置、电子设备及存储介质。

下面将结合实施例对本发明实施例提供的一种逻辑地图的数据处理方法进行详细介绍。

参照图2,本发明实施例提供的一种逻辑地图的数据处理方法,包括如下步骤:

s201、获取目标模型的体素在逻辑地图的地平面内投影形成的目标网格区域;

本文所涉及的体素可以是棱柱形状的,如三棱柱、四棱柱等,也可以是正方体或长方体形状的。棱柱、长方体、正方体的底面是与逻辑地图的地平面平行的。因此,目标网格区域中的网格可以包括以下至少一种形式的网格:三角形网格、长方形网格、正方形网格即方格、其他四边形网格或多于四条边的多边形网格。

如图3所示,图3中左下方的矩形的网格区域即是通过投影得到的一种目标网格区域,即目标方格区域,其中每个网格都是一个方格。逻辑地图可以是通过现有的绘图软件绘制的,目标模型可以是已绘制好的逻辑地图中的任一模型。具体的,可以通过用户输入的选择指令来选择模型。目标模型可以是基于体素建立的,也可以是基于三维三角形网格建立的。目标模型可以是一个完整物体,也可以一个物体的局部,例如,目标模型可以是一栋楼房,也可以是一栋楼房的二楼到六楼的部分。

可选的,本步骤可以通过以下方式实现:

(1)、对目标模型进行体素划分;

根据显示精度要求,即预设的体素数量和体素的边长,将目标模型划分成基于体素的模型。

(2)、将目标模型的体素在逻辑地图的地平面内投影,得到目标网格区域。

需要说明的是,如果目标模型是基于体素建立的,直接执行上述步骤(2)。当然,如果目标模型是基于体素建立的,也可以先执行上述步骤(1),在执行步骤(2),以重新对目标模型进行体素划分。如果目标模型是基于三维三角形网格的模型,则需要执行上述步骤(1)对目标模型进行体素划分。

s202、获取目标网格区域中每个网格对应的特征数组,特征数组是对应网格在竖直方向上对应的各个体素的数组的组合;

基于体素的目标模型的每个体素对应一个数组,这个数组可以包括这个体素的位置、大小或其他属性,其中,其他属性如材质、透明度等等信息。体素的数组是用来表示这个体素的,并用于构建这个体素对应的部分模型使用。其中,竖直方式是与逻辑地图的地平面垂直的方向。

继续参照图3,图3中目标方格区域中,从左至右,第一行中第一个到第四个,第二行中第一个和第二个,以及第三行中第一个共七个方格与图3中右上方左侧的一组数据对应,该组数据即为这个七个方格中各个方格对应的特征数组。图3中目标方格区域中,从左至右,第一行中第五个到第十个,第二行中第三个到第十个,以及第三行中第二个共十五个方格与图3中右上方中间的一组数据对应,该组数据即为这十五个方格中各个方格对应的特征数组。图3中目标方格区域中,从左至右,第三行中第三个至第十个共八个方格与与图3中右上方右侧的一组数据对应,该组数据即为这八个方格中各个方格对应的特征数组。图3中右上方左侧的一组数据,从下至上,依次为对应方格所对应的第一个体素的下坐标5、上坐标10,第二个体素的下坐标25、上坐标40,以及第三个体素的下坐标45、上坐标50。图3中右上方中间的一组数据,从下至上,依次为对应方格所对应的第一个体素的下坐标5、上坐标10,第二个体素的下坐标20、上坐标50,以及第三个体素的下坐标60、上坐标70。同样,图3中右上方右侧的一组数据,从下至上,依次为对应方格所对应的第一个体素的下坐标20、上坐标50,和第二个体素的下坐标60、上坐标70。

同理,图3中目标方格区域中的其他各个方格也对应有各自的特征数组,这里的每个特征数组可以是上述三个特征数组中的任一个,也可以不是,在此不再一一列举。

可选的,本步骤可以按照以下方式实现:

(1)、根据目标模型对应的原始数据,计算目标模型的各个体素的数组;

如果目标模型是基于体素建立的,则目标模型对应的原始数据可以是指目标模型对应的原始的各个体素的数组。例如,将原来的一个体素划分成了两个体素,则依据原来体素的位置、大小和其他属性,可以确定划分后得到的两个体素的位置、大小和其他属性。

如果目标模型是基于三维三角形网格建立的,则根据原来的目标模型的结构数据和其他属性数据,可以计算出目标模型的各个体素的数组。例如,根据目标模型各个体素在目标模型中的位置,以及目标模型的形状尺寸,可以计算出各个体素的数组。

(2)、根据各个体素的数组,确定每个网格对应的特征数组。

将每个网格在竖直方向上对应的各个体素的数组进行组合,得到每个网格对应的特征数组。如图3所示,目标方格区域右上角左侧的是三个体素的数组,分别是5和10,25和40,45和50,则对应的特征数组就可以为(5,10,25,40,45,50);目标方格区域右上角中间的是三个体素的数组,分别是5和10,20和50,60和70,则对应的特征数组就可以为(5,10,20,50,60,70);目标方格区域右上角右侧的是三个体素的数组,分别是5和10,20和50,60和70,则对应的特征数组就可以为(5,10,20,50,60,70)。

s203、对每个网格进行编号,且针对同一特征数组对应的网格采用同一编号;

通过各个网格对应的特征数组,对各个网格进行编号。可以按照预设的顺序,例如,针对图3中的目标方格区域进行编号,可以按照从上到下,从左到右的顺序。图3中方格的数量有100个,需要说明的是,编号可以是具体数值,也可以是通用的公式,示例性的,如图3中,从上至下的三行中,0、3、6分别是对应方格的编号,编号0所对应的方格的特征数组相同。同样,编号3所对应的方格的特征数组相同,编号6所对应的方格的特征数组相同。

在其他实施方式中,如图3所示目标方格区域中,可以按照以下方式标识目标方格区域中的各个方格的位置,每个方格设定一个位置代号,每一行中,从左到右,相邻的两个方格中,右侧方格的位置代号比左侧方格的位置代号增加1。每一列中,从上至下,相邻的两个方格中,下方方格的位置代号比上方方格的位置代号增加10,其中,最左上角的位置代号为0。具体编号时,如果目标方格区域中第一行各个方格对应的特征数组均相同,其他方格的特征数组与第一方格的特征数组不同,则可以使用根据具体代号归纳的通用代号来标识第一行的每个方格的编号。第一行各个方格的编号可以为(10x+1,0≤x≤9),通过代入x的值,可以确定十个数字,这十个数字作为位置代号对应的十个方格,就是这个编号所标识的所有方格。

s204、存储网格位置与编号的对应关系,并存储编号与特征数组的对应关系。

应用本发明实施例,通过对每个网格进行编号,存储每个编号对应的特征数组,实现仅存储去重后的特征数组,而且通过存储网格位置与编号的对应关系,以及编号与特征数组的对应关系,也就相当于将每个网格对应特征数组存储起来。而且,特征数组是数组的组合,也就相当于将各个体素的数组都存储了起来。相比于直接将各个体素的数组存储起来,仅存储网格位置与编号的对应关系,编号与特征数组的对应关系,实现了压缩存储,可以节省存储资源。

基于图1所示实施例,可以按照以下方式进行重构逻辑地图:

根据针对目标模型存储的网格位置与编号的对应关系,以及编号与特征数组的对应关系,确定由各个网格组成的目标网格区域,以及该目标网格区域中各个网格对应的特征数组;

根据各个网格对应的特征数组,获得各个网格在竖直方向上各个体素对应的数组;

根据获得的各个体素对应的特征数组,重构逻辑地图中的目标模型。

本发明实施例的一种实施方式中,参照图4,对每个网格进行编号,且针对同一特征数组对应的网格采用同一编号的步骤,包括:

s401、按照预设的编号顺序,从未编号的网格中,确定当前待编号网格。

按照顺序对目标网格区域中的各个网格进行编号,例如,按照地图中从南道北,从东到西的顺序。

s402、从哈希表中查找,是否存在与当前待编号网格对应的当前特征数组相同的特征数组;如果存在,执行s403,如果不存在,执行s404。

如果针对一个特征数组是第一次到哈希表查找,哈希表中没有关于这个特征数组的记录,则查到不到该特征数组。根据查找,在哈希表中会产生关于该特征数组的记录。如果针对一个特征数组不是第一次到哈希表中查找,哈希表中存在关于该特征数组的记录,则可以查找到该特征数组。

s403、将当前待编号网格的编号设置为针对当前特征数组对应的网格已使用的编号;返回s401。

通过本步骤,可以实现同一特征数组的对应的网格采用同一编号。

s404、按照预设的编号规则,确定一个新的编号,并将当前待编号网格的编号设置为所确定的新的编号;返回s401。

通过本步骤,可以实现不同特征数组的对应的网格采用不同的编号。

采用上述针对网格逐个进行编号的方式,直至将各个网格进行编号。编号过程简单方便,且编号效率较高。

进一步的,按照预设的编号规则,确定一个新的编号,并将当前待编号网格的编号设置为所确定的新的编号的步骤,包括:

根据当前已用的最大编号,将最大编号加上当前已用的最大编号对应网格对应的特征数组所占用的内存大小,获得一个编号,将获得的编号确定为新的编号;

将当前待编号网格的编号设置为所确定的新的编号。

所述存储编号与特征数组的对应关系的步骤,包括:

按照对应编号从小到大的顺序,存储特征数组;

存储编号与各个特征数组相对于最小编号对应的特征数组的内存地址偏移的对应关系。

需要说明的是,如果编号从0开始,针对每个网格对应的编号,即各个特征数组对应的内存地址偏移。存储编号与各个特征数组相对于最小编号对应的特征数组的内存地址偏移的对应关系,具体包括:将编号作为内存地址偏移存储。

如图3所示,在记录图3右上角中的三个特征数组时,由于是按照编号从小到大的顺序记录的,因此,左侧第一个特征数组中,第一个体素的对应的内存地址偏移是0,也就是该特征数组的编号,第二个体素对应的内存地址偏移是1,第三个体素对应的内存地址偏移是2。中间的特征数组中,第一个体素的对应的内存地址偏移是3,也就是该特征数组的编号,第二个体素对应的内存地址偏移是4,第三个体素对应的内存地址偏移是5。右侧的特征数组中,第一个体素的对应的内存地址偏移是6,也就是该特征数组的编号,第二个体素对应的内存地址偏移是7。其中,从0开始编号,将0作为第一个特征数组对应的各个方格的编号,编号3是编号0加上第一个特征数组所占用的内存大小3的和,编号6是编号3加上第二个特征数组所占用的内存大小3的和。需要说明的是,其他编号与特征数组的情况与上述所列情况类似,在此不再一一列举。

通过这种编号方式,可以将编号与内存地址偏移联系在一起,使得在解压时,可以根据内存地址偏移将网格与特征数组对应起来,便于提高解压效率。

基于本发明实施例的本实施方式,可以按照以下方式重构逻辑地图;

读取存储的特征数组,记录第一特征数组的内存地址;

根据第一特征数组的内存地址和各个内存地址偏移可以读取到各个内存地址偏移对应的特征数组;

根据各个编号与内存地址偏移的关系,可以确定各个编号对应的特征数组;

根据针对目标模型存储的网格位置与编号的对应关系,以及各个编号对应的特征数组,确定由各个网格组成的目标网格区域,以及该目标网格区域中各个网格对应的特征数组;

根据各个网格对应的特征数组,获得各个网格在竖直方向上各个体素对应的数组;

根据获得的各个体素对应的特征数组,重构逻辑地图中的目标模型。

本发明实施例的一种实施方式中,存储网格位置与编号的对应关系的步骤,包括:

利用lzo压缩方法对网格位置与编号的对应关系进行压缩并存储;

存储编号与特征数组的对应关系的步骤,包括:

利用lzo压缩方法对编号与的特征数组的对应关系进行压缩并存储。

lzo(lempel-ziv-oberhumer)是致力于解压速度的一种数据压缩算法。lzo压缩方法具有的优点包括:压缩速度快,可以根据实际需要配置内存,如64kb或128kb的内存。算法是线程安全的、无损的。另外,lzo压缩方法对应的解压方法,解压简单,速度快、不需要内存。

针对上述实施例,在重构逻辑地图时,先用现有的针对lzo压缩方法的解压方法对存储的数据进行解压,获得网格位置与编号的对应关系,以及编号与特征数组的对应关系。然后,在基于网格位置与编号的对应关系,以及编号与特征数组的对应关系进行重构逻辑地图的目标模型,这一步骤前述部分已经给出,在此不做赘述。

基于上述方法实施例相同的技术构思,本发明实施例还提供了一种逻辑地图的数据处理装置,下面将结合实施例对本发明实施例提供的逻辑地图的数据处理装置进行详细介绍。

参照图5,本发明实施例提供的逻辑地图的数据处理装置包括:

第一获取模块51,用于获取目标模型的体素在逻辑地图的地平面内投影形成的目标网格区域;

第二获取模块52,用于获取目标网格区域中每个网格对应的特征数组,特征数组是对应网格在竖直方向上对应的各个体素的数组的组合;

编号模块53,用于对每个网格进行编号,且针对同一特征数组对应的网格采用同一编号;

第一存储模块54,用于存储网格位置与编号的对应关系;

第二存储模块55,用于存储编号与特征数组的对应关系。

应用本发明实施例,通过对每个网格进行编号,存储每个编号对应的特征数组,实现仅存储去重后的特征数组,而且通过存储网格位置与编号的对应关系,以及编号与特征数组的对应关系,也就相当于将每个网格对应特征数组存储起来。而且,特征数组是数组的组合,也就相当于将各个体素的数组都存储了起来。相比于直接将各个体素的数组存储起来,仅存储网格位置与编号的对应关系,编号与特征数组的对应关系,实现了压缩存储,可以节省存储资源。

本发明实施例的一种实施方式中,参照图6,编号模块53具体包括:第一确定单元531、查找单元532、第一编号单元533和第二编号单元534;

第一确定单元531,用于按照预设的编号顺序,从未编号的网格中,确定当前待编号网格;

查找单元532,用于从哈希表中查找,是否存在与当前待编号网格对应的当前特征数组相同的特征数组;

第一编号单元533,用于当查找单元532的查找结果为存在时,将当前待编号网格的编号设置为针对当前特征数组对应的网格已使用的编号;并触发确定单元执行照预设的编号顺序,从未编号的网格中,确定当前待编号网格;

第二编号单元534,用于当查找单元532的查找结果为不存在时,按照预设的编号规则,确定一个新的编号,并将当前待编号网格的编号设置为所确定的新的编号,并触发确定单元执行照预设的编号顺序,从未编号的网格中,确定当前待编号网格。

进一步的,第二编号单元534具体包括:处理单元和设置单元;

处理单元,用于根据当前已用的最大编号,将最大编号加上当前已用的最大编号对应网格对应的特征数组所占用的内存大小,获得一个编号,将获得的编号确定为新的编号;

设置单元,用于将当前待编号网格的编号设置为所确定的新的编号;

第二存储模块55包括:第一存储单元和第二存储单元;

第一存储单元,用于按照对应编号从小到大的顺序,存储特征数组;

第二存储单元,用于存储编号与各个特征数组相对于最小编号对应的特征数组的内存地址偏移的对应关系。

本发明实施例的一种实施方式中,第一存储模块54具体用于:利用lzo压缩装置对网格位置与编号的对应关系进行压缩并存储;

第二存储模块55具体用于:利用lzo压缩装置对编号与的特征数组的对应关系进行压缩并存储。

本发明实施例的一种实施方式中,第一获取模块51包括:划分单元和投影模块;

划分单元,用于对目标模型进行体素划分;

投影模块,用于将目标模型的体素在逻辑地图的地平面内投影,得到目标网格区域;

第二获取模块52包括:计算单元和第二确定单元;

计算单元,用于根据目标模型对应的原始数据,计算目标模型的各个体素的数组;

第二确定单元,用于根据各个体素的数组,确定每个网格对应的特征数组。

另外,各个体素的数组可以包括对应体素的位置、大小,以及材质和/或透明度。各个体素的数组包括对应体素的上坐标和下坐标。目标网格区域中的网格包括以下至少一种:正方形网格、长方形网格和三角形网格。

关于该装置中各个模块或单元的具体实现以及相关解释内容可以参见上述图2所示的方法实施例,在此不做赘述。

本发明实施例还提供了一种电子设备,如图6所示,包括处理器210和存储器220,其中,

存储器220,用于存放计算机程序;

处理器210,用于执行存储器220上所存放的程序时,实现如下步骤:

获取目标模型的体素在逻辑地图的地平面内投影形成的目标网格区域;

获取目标网格区域中每个网格对应的特征数组,特征数组是对应网格在竖直方向上对应的各个体素的数组的组合;

对每个网格进行编号,且针对同一特征数组对应的网格采用同一编号;

存储网格位置与编号的对应关系;

存储编号与特征数组的对应关系。

关于该方法各个步骤的具体实现以及相关解释内容可以参见上述图2所示的方法实施例,在此不做赘述。

另外,处理器210执行存储器220上所存放的程序而实现的应用设置方法的其他实现方式,与前述方法实施例部分所提及的实现方式相同,这里也不再赘述。

上述电子设备可以具备有实现上述电子设备与其他设备之间通信的通信接口。

上述的处理器210,通信接口,存储器220通过通信总线完成相互间的通信,此处所提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。

存储器220可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器210可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

应用本发明实施例,通过对每个网格进行编号,存储每个编号对应的特征数组,实现仅存储去重后的特征数组,而且通过存储网格位置与编号的对应关系,以及编号与特征数组的对应关系,也就相当于将每个网格对应特征数组存储起来。而且,特征数组是数组的组合,也就相当于将各个体素的数组都存储了起来。相比于直接将各个体素的数组存储起来,仅存储网格位置与编号的对应关系,编号与特征数组的对应关系,实现了压缩存储,可以节省存储资源。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一的逻辑地图的数据处理方法。

应用本发明实施例,通过对每个网格进行编号,存储每个编号对应的特征数组,实现仅存储去重后的特征数组,而且通过存储网格位置与编号的对应关系,以及编号与特征数组的对应关系,也就相当于将每个网格对应特征数组存储起来。而且,特征数组是数组的组合,也就相当于将各个体素的数组都存储了起来。相比于直接将各个体素的数组存储起来,仅存储网格位置与编号的对应关系,编号与特征数组的对应关系,实现了压缩存储,可以节省存储资源。

在本发明提供的再一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一逻辑地图的数据处理方法的方法步骤。

应用本发明实施例,通过对每个网格进行编号,存储每个编号对应的特征数组,实现仅存储去重后的特征数组,而且通过存储网格位置与编号的对应关系,以及编号与特征数组的对应关系,也就相当于将每个网格对应特征数组存储起来。而且,特征数组是数组的组合,也就相当于将各个体素的数组都存储了起来。相比于直接将各个体素的数组存储起来,仅存储网格位置与编号的对应关系,编号与特征数组的对应关系,实现了压缩存储,可以节省存储资源。

在本发明提供的再一实施例中,还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述任一逻辑地图的数据处理方法的方法步骤。

应用本发明实施例,通过对每个网格进行编号,存储每个编号对应的特征数组,实现仅存储去重后的特征数组,而且通过存储网格位置与编号的对应关系,以及编号与特征数组的对应关系,也就相当于将每个网格对应特征数组存储起来。而且,特征数组是数组的组合,也就相当于将各个体素的数组都存储了起来。相比于直接将各个体素的数组存储起来,仅存储网格位置与编号的对应关系,编号与特征数组的对应关系,实现了压缩存储,可以节省存储资源。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、系统、电子设备、计算机可读存储介质、计算机程序产品以及计算机程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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