AviationKit 1.1.2

AviationKit 1.1.2

Mike Silvers 维护。



  • 作者
  • Mike Silvers

AviationKit

CI Status Version License Platform

概述

FAA通过基于XML的服务器格式提供天气报告及其他通知。FAA 天气服务器 提供了 METAR的TAF的AIREPAIR/SIGMET的G-AIRMET的、以及站场信息。

本库的初始版本包含基于位置的METAR和TAF的基本信息。随着库的增长,将添加额外的功能和报告。

除了FAA的文档之外,还有一份在此GitHub上的文档服务器。文档将关于类、结构、枚举等都将继续更新。

示例

Pod包含一个功能齐全的示例应用程序。要运行示例项目,先克隆仓库,然后在Example目录中运行pod install

要求

为了保持库的最新性,我们将开发落后于当前iOS版本一版的操作系统。例如,当iOS当前版本为12时,我们将在此项目中使用iOS版本11。当iOS版本13发布时,此项目将更新到iOS 12及以下版本。

安装

AviationKit可以通过CocoaPods获取。要安装它,只需将以下行添加到您的Podfile中

pod 'AviationKit'

截图

按位置查找METAR 按位置查找TAF
METAR by location TAF by location
METAR示例 TAF示例
METAR Sample TAF Sample

使用方法

报告是通过基本报告功能和适当的报告参数结构生成的。核心报告功能是

let reports = Reports()
reports.getReport(parmStructure) { (results, error) in 
    // code here 
}

METAR

METAR报告是通过MetarParams结构生成的。没有参数检查过程。

您需要负责设置正确的参数,如下所述的FAA天气站

如果您设置了错误的参数,API端点在闭包的error变量中将返回错误。

METAR示例

var metarParms = MetarParams()
metarParms.areaConstraint = AreaConstraints(Coordinates(location.longitude, location.latitude), milesRadius)

let reports = Reports()
reports.getReport(metarParms) { (results, error) in
    
    if let res = results, let resultsarray = res as? [METAR] {
    	// process the METAR array
    } else {
    	// process the error
    }
    
}           

选项

此有效选项列表来源于19年6月4日的联邦航空局网站。请检查该网站,并在遵循本指南过程中遇到错误时通知我。请查阅联邦航空局网站以确定获取所需数据的正确选项。由于可能发生变化,这里不会重复说明约束条件。此图表描述了联邦航空局变量到AviationKit变量的对应关系。

联邦航空局变量 变量 变量类型 说明
stationString StationConstraints.stationString [字符串] 由联邦航空局分配的四个字母机场站点缩写的数组,可在一个请求中进行多个录入。
startTime StartEnd.startTime Int 自1970年1月1日起的起始和结束时间的秒数
endTime StartEnd.endTime Int 自1970年1月1日起的起始和结束时间的秒数
hoursBeforeNow TimeConstraints.hoursBeforeNow Double 任何正浮点数。基于METAR观测时间
mostRecent MetarParams.mostRecent Bool 默认为false。可选值。
mostRecentForEachStation StationConstraints.mostRecentForEachStation enum MostRecentForEachStationConstraints枚举中包含4个值。默认为false
minLat CoordinateRectangle.minimum.latitude Double 矩形界限的一部分
maxLat CoordinateRectangle.maximum.latitude Double 矩形界限的一部分
minLon CoordinateRectangle.minimum.longitude Double 矩形界限的一部分
maxLon CoordinateRectangle.maximum.longitude Double 矩形界限的一部分
radialDistance AreaConstraints.radiusInMiles Int 英里半径
flightPath (radial distance) flightPathCoordinates.maxDistanceInMiles Double 离路径的英里数
flightPath (Coordinates数组) flightPathCoordinates [CoordinatePath] 请参阅CoordinatePath的定义。
CoordinatePath.leg Int 该坐标路径的路段 - 默认为1
CoordinatePath.endPoint Coordinates 路径的终点(可选)
CoordinatePath.startPoint Coordinates 路径的起点(可选)
CoordinatePath.stationString String 此路径的机场站点而不是坐标
minDegreeDistance MetarParams.minimumDegreeDistance Double 0 < 任何值 < 90。度距离是在站点之间的距离(基于经度和纬度)。minDegreeDistance的值越大,结果越稀疏。重复的站点被筛选,并报告重复站点的最新值。
fields MetarParams.fields [字符串] 处理后希望返回的字段。请参阅联邦航空局文档了解可用的字段。

TAF

天气预报报告仍使用较旧的函数。您可以使用Comms对象来获取TAF信息。目前只有少数几个选项 - 将进行更多更新!

TAF示例

let location = CLLocationCoordinate2D(latitude: 38.920898, longitude:-77.031372)
let milesRadius = 10

let comms = Comms()
comms.getTAF(location, milesRadius) { (results, error) in

	// process the results array of [TAF] objects
	
}

作者

Mike Silvers, [email protected]

许可证

AviationKit 在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。