一种GIS平台下态势复盘的实现方法技术

技术编号:35333651 阅读:25 留言:0更新日期:2022-10-26 11:52
本发明专利技术公开一种GIS平台下态势复盘的实现方法,定义函数模板,针对C++标准内置数据类型以及开发背景下常用的数据类型进行函数模板特化;定义两条可将任意数据类型实例和JSON字符串之间进行序列化和反序列化的宏,使得开发者使用这两条宏进行只关注数据类型中的参数内容,而无视参数类型的数据转换;场景信息生成器以每一个数据刷新周期为时间单位,创建相应的场景信息数据类型对象,并使用转换函数将该场景信息数据类型对象序列化生成JSON字符串,并进行数据存储及生成数据记录;在复盘控制时读取JSON字符串记录;态势显示渲染器使用转换函数将JSON字符串反序列化还原为场景信息数据类型对象,实现态势展示。实现态势展示。实现态势展示。

【技术实现步骤摘要】
一种GIS平台下态势复盘的实现方法


[0001]本专利技术涉及电子信息技术,具体涉及一种GIS平台下态势复盘的实现方法。

技术介绍

[0002]在现有的软件开发中,如果需要具有有丰富界面效果,一般都会采用数据和显示分离的设计方案,具体到态势软件,尤其是基于GIS平台开发的态势软件,除正常的实时数据生成推动之外,经常会有需要复盘展现的需求。
[0003]对于复盘功能来说,除直接的数据记录读取之外,还涉及到高速、低速、进度跳转等子功能,想要实现这些功能就必须有强大的数据存储机制,例如:(1)从节省存储空间的角度考虑,存储变化数据最节省,但这就要求在跳转时必须增加数据检索,以保证跳转到任一时间点都能加载到当时态势的所有信息,这显著增加了额外的开发工作,延长了数据读取时间,也给数据存储二次处理的灵活性造成了负担;(2)从数据存储格式考虑,为节省存储空间以及缩短解析时间,通常采用固定帧长固定结构的十六进制数据存储格式最为合适,但实际情况是,受业务需求的影响,在开发期间,甚至软件交付之后,数据内容仍很可能存在修改的需求,这就对软件的兼容性和稳定性造成了影响。
[0004]针对上述两个问题,现有技术方案哦通常是通过定时保存完整态势来解决,使得从任何一条记录开始读取都能完整还原当时态势;但是如上所述这种方法需要设计固定字段结构来进行存储,无法进行程序的扩展。
[0005]综上所述,传统的开发方式,面对有复盘需求,且业务需求不明确的情况下,受到存储方式和存储格式两方面的考验。

技术实现思路

[0006]专利技术目的:本专利技术的目的在于解决现有技术中存在的不足,提供一种GIS平台下态势复盘的实现方法,本专利技术能够在进行有复盘需求且业务需求多变的情况下,针对传统方案数据存储兼容性差、数据读取检索工作复杂,业务变更导致数据结构变化影响版本兼容性等方面的劣势,提供一种存储简单,便于扩展的方案机制。
[0007]技术方案:本专利技术的一种GIS平台下态势复盘的实现方法,包括以下步骤:步骤(1)、定义可将任意数据类型和JSON字符串之间进行互相转换的函数模板,并针对C++标准内置数据类型以及开发背景下常用的数据类型(比如QString,QVector等)进行函数模板特化;步骤(2)、定义两条可将任意数据类型实例和JSON字符串之间进行序列化和反序列化的宏,使得开发者使用这两条宏进行只关注数据类型中的参数内容,而无视参数类型的数据转换;步骤(3)、设计表示场景信息的对应数据类型,数据类型包括类和结构体;步骤(4)、使用步骤(2)中的宏来定义得到场景信息数据类型和JSON字符串之间的
转换函数;具体来说,针对场景信息数据类型来使用步骤(2)中的宏来作为函数声明,函数体内对场景信息数据类型的所有成员分别调用步骤(1)中的模板函数,得到一个转换函数的定义,该函数可以完成场景信息数据类型和JSON字符串之间的相互转换;步骤(5)、场景信息生成器以每一个数据刷新周期(例如1秒)为时间单位,创建相应的场景信息数据类型对象,并使用步骤(4)中定义的函数将该对象序列化生成JSON字符串,并进行数据存储,并生成数据记录;步骤(6)、在复盘控制时,按时间点读取存储的JSON字符串记录;此处的是时间点根据实际情况而定,步骤(7)、态势显示渲染器使用步骤(4)中定义的转换函数将JSON字符串反序列化还原为场景信息数据类型对象,在展示层面进行渲染控制,实现态势展示。
[0008]进一步地,所述步骤(2)通过两条宏将任意数据类型实例和JSON字符串之间进行序列化和反序列化转换;由于自定义数据类型主要是用户自定义类或结构体,其中一条宏进行整体封装函数,根据参数确定对自定义数据类型进行序列化或者反序列化;另一条宏通过文本替换方式来调用函数模板,完成对自定义数据类型对象成员变量和JSON字符串之间的转换;开发者组合使用这两条宏来完成自定义数据类型和JSON字符串的转换定义,进行只关注数据类型对象成员变量内容,而无视成员变量类型的数据转换。
[0009]有益效果:本专利技术可用于GIS平台下进行态势展示时使用的,高效灵活的数据交换方式(适用于C++语言)。此方法既可用于实时更新参数,也适用于存储后进行允许用户进行进度控制的情景复盘,适用性强。与现有技术相比,具体包括以下优点,1)利用宏定义、模板等技术方式,实现能将各种自定义类型(也包括内置数据类型)和JSON字符串之间进行序列化和反序列化的统一转换函数;2)对于数据生成模块而言,将每个时间单位生成的场景信息数据类型的对象,转换为JSON字符串进行存储,或直接转发。
[0010]3)对于渲染模块而言,对接到的JSON字符串需解析还原为场景信息数据类型对象,并根据对象参数实现态势展示。
附图说明
[0011]图1为本专利技术的整体策略结构图;图2为本专利技术的整体策略流程图;图3为实施例中场景信息数据类型对象快速转为JSON调试效果图;图4为实施例中JSON字符串快速反序列化调试效果图;图5为是实施例中根据场景信息数据类型对象进行渲染的界面效果图。
具体实施方式
[0012]下面对本专利技术技术方案进行详细说明,但是本专利技术的保护范围不局限于所述实施例。
[0013]如图1和图2 所示,本实施例的一种GIS平台下态势复盘的实现方法,包括以下步骤:步骤(1)、定义可将任意数据类型和JSON字符串之间进行互相转换的函数模板,并
针对C++标准内置数据类型以及开发背景下常用的数据类型(比如QString,QVector等)进行函数模板特化;步骤(2)、定义两条可将任意数据类型实例和JSON字符串之间进行序列化和反序列化的宏,使得开发者使用这两条宏进行只关注数据类型中的参数内容,而无视参数类型的数据转换;由于自定义数据类型主要是用户自定义类或结构体,其中一条宏进行整体封装函数,根据参数确定对自定义数据类型进行序列化或者反序列化;另一条宏通过文本替换方式来调用函数模板,完成对自定义数据类型对象成员变量和JSON字符串之间的转换;开发者组合使用这两条宏来完成自定义数据类型和JSON字符串的转换定义,进行只关注数据类型对象成员变量内容,而无视成员变量类型的数据转换;步骤(3)、设计表示场景信息的对应数据类型,数据类型包括类(比如设计场景快照类、导航设备类、卫星类和干扰设备类等数据类型)和结构体;步骤(4)、使用步骤(2)中的宏来定义得到场景信息数据类型和JSON字符串之间的转换函数;步骤(5)、场景信息生成器以每一个数据刷新周期(例如1秒)为时间单位,创建相应的场景信息数据类型对象,并使用步骤(4)中定义的函数将该对象序列化生成JSON字符串,并进行数据存储,并生成数据记录;步骤(6)、在复盘控制时,按时间点读取存储的JSON字符串记录;步骤(7)、态势显示渲染器使用步骤(4)中定义的转换函数将JSON字符串反序列化还原为场景信息数据类型对象,在展示层面进行渲染控制,实现态势展示。
[0014]本专利技术使用简洁方便,便于开发者将精力集中在业务本身,而不是数据转换;同时,其数据的存储和本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种GIS平台下态势复盘的实现方法,其特征在于:包括以下步骤:步骤(1)、定义可将任意数据类型和JSON字符串之间进行互相转换的函数模板,并针对C++标准内置数据类型以及开发背景下常用的数据类型进行函数模板特化;所述常用数据类型包括Qstring和Qvector;步骤(2)、定义两条可将任意数据类型实例和JSON字符串之间进行序列化和反序列化的宏,使得开发者使用这两条宏进行只关注数据类型中的参数内容,而无视参数类型的数据转换;步骤(3)、设计表示场景信息的对应数据类型,数据类型包括类和结构体;步骤(4)、使用步骤(2)中的宏来定义得到场景信息数据类型和JSON字符串之间的转换函数;步骤(5)、场景信息生成器以每一个数据刷新周期为时间单位,创建相应的场景信息数据类型对象,并使用步骤(4)中所得转换函数将该场景信息数据类型对象序列化生...

【专利技术属性】
技术研发人员:纪丽华何飞
申请(专利权)人:南京雷电信息技术有限公司
类型:发明
国别省市:

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

1