月升月落和月相

平台: API iOS Android

获取未来60天全球城市月升月落和逐小时的月相数据。

月相已考虑南北半球的差异,不需要再进行转换

接口代码 接口 数据类
astronomyMoon 月升月落和月相 AstronomyMoonResponse

参数

AstronomyMoonParameter

  • location(必选)需要查询地区的LocationID或以英文逗号分隔的经度,纬度坐标(十进制,最多支持小数点后两位),LocationID可通过GeoAPI获取。例如 location=101010100location=116.41,39.92
  • date(必选)选择日期,最多可选择未来60天(包含今天)的数据。日期格式为yyyyMMdd,例如 date=20200531
  • lang多语言设置,请阅读多语言文档,了解我们的多语言是如何工作、如何设置以及数据是否支持多语言。

示例代码

Swift

Task {
    do {
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyMMdd"
        let date = formatter.string(from: Date())
        let parameter = AstronomyMoonParameter(location: "101010100", date: date)
        let response = try await QWeather.instance
            .astronomyMoon(parameter)
        print(response)
    } catch QWeatherError.errorResponse(let error) {
        print(error)
    } catch {
        print(error)
    }
}

Objective-C

NSDateFormatter * formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyyMMdd"];
NSString * date = [formatter stringFromDate:[NSDate date]];
AstronomyMoonParameter *parameter = [AstronomyMoonParameter instanceWithLocation:@"101010100" date:date lang:@(LangZH_HANS)];
[QWeatherObjc astronomyMoon:parameter completionHandler:^(AstronomyMoonResponse * _Nullable response, NSError * _Nullable error) {
    if (response) {
        NSLog(@"%@", response.description);
    }
    if (error) {
        NSLog(@"%@", error.localizedDescription);
    }
}];

返回数据

AstronomyMoonResponse

  • code 请参考状态码
  • updateTime 当前API的最近更新时间
  • fxLink 当前数据的响应式页面,便于嵌入网站或应用
  • moonrise 当天月升时间可能为空
  • moonset 当天月落时间可能为空
  • moonPhase.fxTime 月相逐小时预报时间
  • moonPhase.value 月相数值
  • moonPhase.name 月相名称
  • moonPhase.icon 月相图标代码,另请参考天气图标项目
  • moonPhase.illumination 月亮照明度,百分比数值
  • refer.sources 原始数据来源,或数据源说明,可能为空
  • refer.license 数据许可或版权声明,可能为空