s 中查找过渡点类型,如没有此 PROCEDURES 类型,则加入此类型,如果有,则在 ProcedureIdent 中再查找读到的航段名称,没有 RunwayID Waypoints SingleProcedure 就加入航段名称,并将此行数据读入,如有则 直接读取此行数据到相应航段 vector 中。
ProcedureTrans 4 这样,逐行依次读取,最后将所有数据保存在 PROCEDURE 的相应数据结构中。
ProcedureIdent 按照这种读取控制逻辑,在读取 EXCEL 标准表 格时,如果此航段数据已经读取过,则不会再添加此 ProcedurePointData 航段,只有未读取的数据才能够被读入,航路点数据 也相同,这样就保证了读取数据时不会重复读入。
Figure 4. Data Structures definition for PROCEDURES 图 4. PROCEDURES 页面数据结构的定义 3 PBN 飞行程序航图的绘制 完成 PBN 飞行程序数据导入后,可将所设计的飞2.2 数据读取控制逻辑 行程序航图(标称航迹)绘制以进行展示,可以对航 完成数据结构的定义之后,需要对数据读取的控 段数据进行校验,以及对航路点位置偏差、航段距离制逻辑进行研究,以实现 ARINC424 编码的 PBN 飞行 偏差、航向偏差等设计上的问题进行评估。
程序数据的导入。
同样,还是按照 Basic datas 和 要完成绘制,还需要对航图的绘制逻辑进行研究Procedures 两个页面的数据分别进行实现。
和实现,这里利用 WINDOWS 的图形绘制接口来实现 针对 Basic datas 页面数据,首先实现读取 EXCEL 对航图的绘制。
标准表格的每一行数据,并定义数据读取的控制逻辑 3.1 图形绘制逻辑如下。
进行PBN飞行程序航图的绘制,首先要实现读取1 读取EXCEL表格的每行数据,在每行查找关键 数据结构中的程序数据,并制定图形绘制的逻辑如下。
字quotAIRPORTSquot 、 quotNAVAIDSquot 、 quotRUN- 1 指定需要绘制航图的跑道号和程序的类型(进 WAYSquot 、quotNDBSquot等,对于查找到的这些关键 场、进近和离场)。
字,记录其数据块的首末行。
2 按照指定的跑道号,在SingleProcedure中查找指2 对于这些关键字对应的数据块,使用不同的函数 定的程序类型。
读取,如NAVAIDS数据,用函数ReadNavaids() 3 在此类型当中的ProcedureTrans中查找过渡点类 按照数据块首末行读取。
型,将同一过渡点类型的ProcedureIdent中的所3 将读取的数据保存到上述定义的BASICDATAS 有航段读出,并将所有航段的航路点坐标读 的NAVAIDS结构体的变量中,依次进行,完成 取。
读取。
4 在CDrawProcedureGraph类中添加航路点对象,978-1-61896-025-2 2012 SciRes. 26System Simulation Technology amp Application Volume 14 进行坐标变换和绘制调用,所有绘制在 在C、
VB等开发语言中,通过集成SuperMap CDrawObject类中完成,VIEW类通过指针调用 Objects的COM组件,生成相关控件,它的底层进行封 CDrawObject的绘制接口进行显示。
装,在工程中使用SuperMap控件来进行二次开发,比 这里,坐标变换是将地理坐标系转换为设备坐标 较方便。
VC开发中,则需要包含SuperMap 头文件和系。
因为航路点数据是以地理坐标系统存放的,绘制 源文件(.h和.cpp), 生成CSuperMap类,通过调用时,需将航图转换到屏幕坐标系进行显示,所以必须 相关接口实现开发,难度较大,但灵活性强。
进行坐标的转换。
按照以上绘制逻辑,就能实现航图 4.1 地形高程数据(DEM)读入的绘制。
在VC中,利用SuperMap Objects进行二次开发,3.2 GDI图形绘制 以 实 现 地 形 高 程 数 据 的 读 入 。
首 先 , 在 SuperMap 这里,利用WINDOWS的图形绘制接口(GDI) Objects中定义地形数据保存的工作空间,并在工作空来 实 现 对 航 图 的 绘 制 , 对 于 VC 来 说 , GDI 是 间中建立数据源,数据源中包含有数据集,其中,数WINDOWS提供的基于C类的API,它是GDI的继 据源有可以为sdb、SQL、Oracle spatial、SYBASE等承。
GDI是应用程序与硬件之间的中间层,它通过将 格式,此处建立sdb格式的数据源。
数据集有格网、应用程序与不同输出设备特性相隔离,可使应用程序 DEM、位图等格式,此处地形数据采用DEM格式。
在WINDOWS支持的任何图形输出设备上运行,通过 在导入DEM数据时,首先创建DEM形式的数据应用程序调用GDI接口,将航路图形、符号显示在屏 集,它们是地形数据的索引,并不保存真实的高程数幕上,而无需关心显示设备细节。
如图5为GDI绘制 据。
在VC工程中,调用CSuperMap类的相关接口,连的飞行程序航图。
接工作空间,读取数据集中的信息,此时,数据集中 的地形数据保存在内存中,显示时由内存读取。
4.2 地形绘制 Figure 5. GDI drawing for PBN flight procedure charts arriving 图 5. GDI绘制的 PBN 飞行程序航图进场 Figure 6. Terrain elevation data importing and terrain drawing with CSuperMap interface 图 6. CSuperMap 接口实现高程数据读入和地形绘制4 GIS 开发平台 SuperMap Objects 二次开发 利用 GDI完成航图绘制之后,更进一步的飞行程 完成地形数据的读入之后,还需要将地形绘制在序验证,需要将高程数据读入系统,需要完善坐标转 屏幕上,这就需要将地理坐标系(WGS84坐标)下的换、投影转换、地理坐标中的相关计算、地理数据查 地形数据投影到平面坐标系进行绘制,投影方式一般询、图形控制、图形绘制、放大缩小等功能,这些功 有高斯-克吕格、墨卡托、通用横轴墨卡托(UTM)等能的实现仅依靠自己开发工作量大,不实际。
采用组 投影,此处采用了通用横轴墨卡托投影方式进行投影件式的 GIS 开发平台 SuperMap Objects 进行二次开发 转换。
4 ,可以非常方便地实现上述功能。
在完成平面投影之后,还需要将平面坐标系的地 形数据投影到设备坐标系,以实现将地形图绘制在屏 27 978-1-61896-025-2 2012 SciRes. System Simulation Technology amp Application Volume 14幕上,所有这些坐标转换工作都是调用CSuperMap类 5 飞行程序校验的相关接口实现的。
之后,从内存中读取地形数据, 完成PBN飞行程序编码的ARINC424标准文件读转换到.