一种导航数据转换中内存管理的方法技术

技术编号:7306335 阅读:355 留言:0更新日期:2012-05-02 16:45
本发明专利技术公开了一种导航数据转换中内存管理的方法,包括建立导航数据格网索引的步骤;对导航数据进行内存统计的步骤;根据统计结果存储导航数据的步骤;对导航数据进行管理处理的步骤。采用本发明专利技术解决了全国大比例尺的导航数据在转换数据格式时内存开销大,对硬件性能要求高的问题,实现了大数据量的数据在很小的硬件配置下进行转换处理和使用。

【技术实现步骤摘要】

本专利技术公开了。
技术介绍
支持基于位置服务(LBS)与智能交通系统(ITS)的地理数据叫做导航地理数据, 简称导航数据。导航数据已在个人移动导航服务、汽车自主导航、各种监控和运营服务系统等领域得到应用,形成了巨大的市场规模。导航数据的特点是比例尺大、精度高、道路属性全、POI (Point of Interest,兴趣点)信息丰富、带有交通管制信息。导航数据的制作一般是专业的数据生产公司利用常用的GIS工具生成的如.MIF、shapef ile、EOO等通用矢量的数据交换格式,这些格式在使用时需要转换成各自平台的自有格式,才能被平台使用。在数据格式转换时,常规方法的流程是首先建立空间格网索引,在索引项中预先分配动态数组来存储对象地址,对每一个存储对象进行独立的内存分配。这种做法实际占用内存量也会变大,例如当一个数据对象需要的存储空间为32byte时,系统为管理此对象,要对其分配超过36byte的空间。当数据量变大至几个G、上百G,索引对象在10万以上时,这种方法带来的不足是内存消耗巨大,而且频繁的进行内存的分配与释放操作,会出现内存碎片,使得海量数据转换对硬件要求比较高。全国大比例尺的导航数据以道路数据为例,通常是有IOG以上,就目前普通的PC机的性能配置来说完成此任务几乎是不能的。针对大数据量数据转换消耗内存空间比较大的问题,目前有一些解决办法,例如将全国的数据进行分块存储,对每一块数据进行单独的处理。这种物理上分块存储的方法,不适合于全国道路数据的转换,在分块处道路的连通性不能够保证。在做路径规划时需要考虑整体的路网拓扑关系,因此分块处理的方法存在一定的缺陷。
技术实现思路
本专利技术的技术解决问题是克服现有技术的不足,提供了。采用本专利技术解决了全国大比例尺的导航数据在转换数据格式时内存开销大,对硬件性能要求高的问题,实现了大数据量的数据在很小的硬件配置下进行转换处理和使用。本专利技术的技术解决方案是在对海量导航数据转换时,对处理过程进行分步分解,在统计数据对象个数步骤内,不进行内存的分配,当对所有的数据对象进行遍历,统计与每个对象相关联的有效信息需要占有的内存量,计算出总的对象需要占用的内存量,然后一次性进行内存分配,在转换结束时,一次性释放内存。从而避免了频繁的内存操作,减少内存碎片的产生。为了实现上述专利技术方案,通过以下步骤进行操作100:读取导航数据创建格网空间索引,所述导航数据中包括导航数据中所有元素的空间坐标;利用读取的导航数据中元素的空间坐标确定空间索引的格网的大小;并根据格网的大小确定导航数据所对应的格网总数;根据格网的大小划分导航数据中每个元素所属的格网;200 以格网为索引项,对格网中的元素进行内存统计遍历每个格网中的元素,对每个元素的属性项进行统计;针对每个元素中不同属性项的大小统计内存空间;完成一个元素中所有属性项的内存统计后,对格网中的元素计数进行累加,当累加计数等于格网中元素总数时,转入步骤300 ;300 将步骤200中统计完成的格网中的元素根据统计得到的内存空间大小进行存储;400:导航数据处理软件按照预定义的格式,将导航数据中的元素进行关联处理, 将处理后的导航数据信息存储到外存。本专利技术与现有技术相比具有如下优点(1)本专利技术根据获取的导航数据中的元素即道路节点和道路弧度等,确定作为索引项的格网大小,如,当导航数据中包含较为稀疏的元素时,采用大格网;当导航数据中包含较为密集的元素时,采用小格网。以此对导航数据进行划分,有效的规划了导航数据中的处理容量。(2)本专利技术对导航数据中每个元素的属性项进行初次内存统计,在初次内存统计的结果上,以元素为单位计算需分配内存的大小,实现了连续大存储空间的分配,进而规避了现有技术对导航数据格式转换时内存统计和分配时,容易造成内存碎片消耗额外内存的问题。附图说明图1为本专利技术流程图;图2为导航数据示意图。具体实施例方式下面就结合附图对本专利技术做进一步介绍。如图1所示,为本专利技术流程图。本专利技术的具体步骤如下(1)建立导航数据格网索引读取的导航数据创建格网空间索引,在读取的导航数据中包括导航数据中所有元素的空间坐标。元素的类型有道路节点NODE、道路弧度LINK以及道路规则。根据道路节点NODE、道路弧度LINK中的空间坐标,确定对导航数据进行划分时所采用的格网大小,选择合适大小的格网可以有效的划分导航数据中的元素个数,从而便于在后续步骤中对导航数据内存空间的管理处理。例如,按经差1° X纬差40’划分格网的大小,格网的起点(第一个格网的左下角点)为纬度0°,经度60°。确定格网大小和格网总数后,对所有的格网进行编号。编号规则是纬度行号(两位整数RR) +经度列号(两位整数LL)。由任意元素空间坐标的经纬度求该点处于哪个网格的格网号计算公式为4RR =取整(纬度 *60/40);LL =取整(经度)_60 ;例如已知某空间坐标经度=125.3752° = 125° 22,30. 72” ;纬度=28.2669° =28° 16,0. 84” ;RR =取整(28. 2669*60/40)=取整(42. 40035) = 42 ;LL =取整(125. 3752)-60 = 65 ;格网号为 4265。完成格网标号的同时也将导航数据中的元素按照空间坐标与格网号的对应关系进行了划分。(2)统计导航数据内存对读取的外部导航数据进行格式转换时,由于自身格式与外部导航数据格式间的差异,因此,要对需进行格式转换的外部导航数据进行存储空间的统计。在本专利技术中以格网为索引项对对导航数据进行内存统计,即对遍历每个格网,对格网中的元素所需内存分别进行统计。上述导航数据包括道路节点NODE、道路弧度LINK以及道路规则。在利用不同类型的外部导航数据时,不同的元素类型的不同属性项之间具有不一样的关联关系,因此,内存统计时,对属于同一元素的每一个属性项分别进行统计,获取一个元素所需要的完成内存空间大小。在遍历完导航数据中的所有格网和格网中的全部元素后,完成对内存的统计处理。(3)导航数据内存分配按照步骤( 获得的内存空间大小,对导航数据中的元素进行存储,从而可以将每个元素完整连续的存储于一段内存中,避免了由于每个元素空间属性项内存过小,单独存储而造成的内存空间碎片。(4)导航数据关联处理完成对导航数据的存储后,导航数据处理软件按照预定义的格式,将导航数据信息中的元素进行关联处理,将处理后的导航数据信息存储到外存。实施例把1 25000比例尺下的全国道路网数据进行转换,从MIF格式转换到本专利技术导航处理平台需要的路径规划数据格式,算法的步骤如下 导航数据文件整体信息读取全国道路路网数据,具有中国的地理空间范围,道路网的构成包括有道路结点 NODE和道路弧度LINK组成,如图2所示。一般的道路属性信息例如,长度、车道数、流向等与路径规划相关的属性信息。 分配索引项根据全国的坐标范围和比例尺,将全国的数据划分为5317*64个索引格网,每个格网被称为索引项,该索引项的属性包含处于该索引范围内的数据对象的总数和对象的存储地址,本实例中指该空间范围内的LINK总数N和每一条LINK在该索引项中的存储地址 LINK。 统计对象数和存储每一个对象的有效信息所需要的内存量将每一个LINK本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:刘庆军罗军俞能杰李亚平
申请(专利权)人:航天恒星科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术