4 个版本
0.2.0 | 2019 年 6 月 6 日 |
---|---|
0.1.4 | 2019 年 4 月 27 日 |
0.1.3 | 2019 年 4 月 26 日 |
0.1.2 | 2019 年 4 月 26 日 |
2001 在 #parser
每月 25 次下载
41KB
883 行
openair-rs
A Rust 解析器,用于解析 OpenAir 格式的空域文件(由 Skytraxx 等飞行仪器使用)。
http://www.winpilot.com/UsersGuide/UserAirspace.asp(另见 FORMAT.txt
)
此库需要 Rust 2018(1.31+)。
状态
支持的文件格式特性
- 解析空域元数据
- 解析地形元数据
- 支持多边形点
- 支持圆形
- 支持圆弧
- 支持 AY/AF/AG 扩展记录
标签放置提示(AT)和样式记录(SP,SB)不受支持。
实现说明
遗憾的是,OpenAir 格式定义得非常不明确。每个设备都使用不同的约定。例如,我们无法使用任何明确的前缀作为空域的分隔符。有些文件使用空行来分隔空域,有些则使用注释。但另一方面,有些文件甚至在坐标之间放置注释,使得它们也无法用作分隔符。
此解析器在解析时非常宽容,基于实际数据。空域的结束是下一个空域开始(带有 AC
记录)或文件结束。
注意:没有单位说明的高度(例如“1000 GND”)将被视为英尺!)
示例
您可以使用示例程序尝试使用解析器
$ cargo run --example parse_file example_data/Switzerland.txt
Serde 序列化
要包含所有数据类型的序列化,请启用 serde
功能。
许可证
许可协议为以下之一
- Apache 许可证 2.0(《LICENSE-APACHE》或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证(《LICENSE-MIT》或 http://opensource.org/licenses/MIT》)任选其一。
贡献
除非您明确声明,否则您有意提交以供包含在作品中的任何贡献,根据 Apache-2.0 许可证定义,应按上述方式双许可,无需任何附加条款或条件。
依赖项
~2.2–3.5MB
~59K SLoC