MBOpenWeather 0.1.0

MBOpenWeather 0.1.0

El Mahdi BOUKHRIS 维护。



MBOpenWeather

Version License Platform

MBOpenWeather 是一个简单的 OpenWeather API 包装器,允许

  • 无缝地进行 API 调用
  • 检索有关指定位置的天气信息(通过 ID、坐标或名称)
  • 返回简化的、人类可读的值

演示

要求

  • Swift 4
  • iOS 11.0+

安装

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

pod 'MBOpenWeather'

用法

初始化

请确保您向框架提供它所需要的API密钥以使其正常工作

MBWeatherManager.shared.setAPIKey("")

可用的API调用

MBOpenWeather 允许获取指定位置的气象信息,位置可以采用以下三种方法之一指定

1 - 通过ID

public func weatherInfo(forCityId cityId:Int?, withSuccess success:@escaping (MBWeatherModel) -> Void, andFailure failure:@escaping (NSError) -> Void) 

2 - 通过坐标(纬度/经度)

public func weatherInfo(forLatitude latitude:Double, longitude: Double, withSuccess success:@escaping (MBWeatherModel) -> Void, andFailure failure:@escaping (NSError) -> Void)

3 - 通过城市名称

public func weatherInfo(forCityName cityName:String, withSuccess success:@escaping (MBWeatherModel) -> Void, andFailure failure:@escaping (NSError) -> Void)

返回值

成功

如果 MBOpenWeather 能够检索到所需的信息,则前面提到的 3 个函数中的每一个都将返回一个包含所选位置所有相关天气信息的 MBWeatherModel 对象。下面是该对象的架构(由 openweathermap.org 定义)

  • coord
    • coord.lon 城市地理经度位置
    • coord.lat 城市地理纬度位置
  • weather(更多信息:天气状况代码)
    • weather.id 天气状况 ID
    • weather.main 天气参数组(雨,雪,极值等)
    • weather.description 组内天气状况。您可以使用您的语言输出结果。了解更多
    • weather.icon 天气图标 ID
  • base 内部参数
  • main
    • main.temp 温度。单位:默认为开尔文,公制:摄氏度,英制:华氏度。
    • main.feels_like 温度。此温度参数考虑了人类对天气的感知。单位:默认为开尔文,公制:摄氏度,英制:华氏度。
    • main.pressure 大气压力(海平面,如果没有海平面或地面水平数据),hPa
    • main.humidity 湿度,%
    • main.temp_min 当前最低温度。这是在大型城市群和城市地区观察到的最低温度(目前)。单位:默认为开尔文,公制:摄氏度,英制:华氏度。
    • main.temp_max 当前最高温度。这是在大型城市群和城市地区观察到的最高温度(目前)。单位:默认为开尔文,公制:摄氏度,英制:华氏度。
    • main.sea_level 海平面大气压力,hPa
    • main.grnd_level 地面水平大气压力,hPa
  • wind
    • wind.speed 风速。单位:默认为米/秒,公制:米/秒,英制:英里/小时。
    • wind.deg 风向,度数(气象学度数)
    • wind.gust 风暴。单位:默认为米/秒,公制:米/秒,英制:英里/小时
  • clouds
    • clouds.all 雾量,%
  • rain
    • rain.1h 最近 1 小时的雨量,mm
    • rain.3h 最近 3 小时的雨量,mm
  • snow
    • snow.1h 最近 1 小时的雪量,mm
    • snow.3h 最近 3 小时的雪量,mm
  • dt 数据计算时间,Unix,UTC
  • sys
    • sys.type 内部参数
    • sys.id 内部参数
    • sys.message 内部参数
    • sys.country 国家代码(GB,JP 等)
    • sys.sunrise 日出时间,Unix,UTC
    • sys.sunset 日落时间,Unix,UTC
  • timezone 与 UTC 的秒数差
  • id 城市 ID
  • name 城市名称
  • cod 内部参数

该模型还公开了某些可读格式的值

@objc public var weatherDescription: String? // ex : Overcast clouds
@objc public var humidity: String? // ex : 68%
@objc public var pressure: String? // ex : 1008hPA
@objc public var windDirection: String? // ex : SW
@objc public var cloudCoverage: String? // ex : 90%
@objc public var sunriseTime: String? // ex : 05:13
@objc public var sunsetTime: String? // ex : 20:58
@objc public var daylightHours: String? // ex : 15
@objc public func getTemperature(in unit: TemperatureUnit = .kelvin) -> String? // ex : 21°C
@objc public func getWindSpeed(in unit: WindSpeedUnit = .kmPerHour) -> String? // ex : 21Km/h

失败

如果请求失败,MBOpenWeather 将返回一个错误对象,以下是已知的错误代码列表

代码
-1 INVALID_URL
-2 UNSUPPORTED_METHOD
-3 MISSING_API_KEY
-4 MISSING_CITY_IDENTIFIER
-5 INVALID_RESPONSE
-6 INVALID_RESPONSE_CODE

作者

[email protected]

许可证

MBOpenWeather采用MIT许可证。请参阅LICENSE文件获取更多信息。