全部服务产品
开发者频道
定价
登录
天气服务
下载开发文档
简介

国内天气查询

国内天气查询服务分为基础服务和高级权限。

在基础服务中,用户可通过行政区划代码查询实时天气信息及未来5天天气预报。

在高级权限中,用户可通过经纬度查询实时天气信息、未来7天天气预报及未来24小时逐小时预报。同时,用户还可以通过高级权限获取国内空气质量指数、生活指数、气象预警等丰富信息。

海外天气查询

海外天气查询服务分为基础服务和高级权限。

在基础服务中,用户可通过行政区划代码查询实时天气信息及未来5天天气预报。

在高级权限中,用户可通过经纬度查询实时天气信息、未来7天天气预报及未来24小时逐小时预报。同时,用户还可以通过高级权限获取云量、能见度、降水量等信息。

高级权限需付费开通,您可以联系我们开通15天试用并了解更多信息。

实现步骤
1. 引入头文件

国内天气查询服务功能使用的是地图SDK的检索功能,需要在工程中导入检索功能包BaiduMapAPI_Search.framework

#import <BaiduMapAPI_Base/BMKBaseComponent.h>
#import <BaiduMapAPI_Search/BMKSearchComponent.h>
2. 初始化天气查询服务对象
BMKWeatherSearch *search = [[BMKWeatherSearch alloc] init];
3. 设置天气查询服务代理
search.delegate = self;
4. 构造天气查询服务参数
BMKWeatherSearchOption* option = [[BMKWeatherSearchOption alloc] init];
// 区县的行政区划编码
option.districtID = @"110108";
//天气服务类型,默认国内
option.serverType = BMKWeatherServerTypeDefault;
//天气数据类型
option.dataType = BMKWeatherDataTypeAll;
//语言类型
option.languageType = BMKLanguageTypeEnglish;
5. 发起天气查询服务请求
/**
*weather搜索
*param weatherSearchOption weather检索信息类
*异步函数,返回结果在BMKWeatherSearchDelegate的onGetWeatherResult通知
*return 成功返回YES,否则返回NO
*/
BOOL flag = [search weatherSearch:option];
if (flag) {
NSLog(@"天气查询发送成功");
} else {
NSLog(@"天气查询检索发送失败");
}
6. 实现代理方法,获取检索结果
/**
天气查询结果回调
@param searcher 检索对象
@param result 天气查询结果
@param error 错误码,@see BMKCloudErrorCode
*/
- (void)onGetWeatherResult:(BMKWeatherSearch *)searcher result:(BMKWeatherSearchResult *)result errorCode:(BMKSearchErrorCode)error {
if (error == BMK_SEARCH_NO_ERROR) {
//在此处理正常结果
}
else {
NSLog(@"查询失败");
}
}
7. 处理检索返回的结果

通过代理返回的error判断检索是否成功,如果检索成功,可通过解析result字段获取具体的结果。具体使用示例可参照官方demo中的BMKWeatherSearchPage。BMKWeatherSearchResult如下表

结果数据含义
BMKWeatherSearchNow*realTimeWeather天气实况数据
BMKWeatherSearchLocation*location地理位置信息
NSArray<BMKWeatherSearchForecasts*>*forecasts未来5天预报数据
NSArray<BMKWeatherSearchForecastForHours*>*forecastHours;未来24小时逐小时预报,高级字段
NSArray<BMKWeatherSearchIndexes*>*lifeIndexes生活指数数据,高级字段
NSArray<BMKWeatherSearchAlerts*>*weatherAlerts气象预警数据,高级字段
注意:使用经纬度loaction字段发起天气检索和返回结果BMKSuggestionSearchResult中部分字段需要申请高级服务权限,首先需要进行企业认证, 之后需要提交工单申请这个权限, 并详细说明使用场景, 包括但不限于, 使用开放平台哪些产品及服务, 应用在贵方哪些产品及应用上以及该产品或应用的相关介绍, 预估使用配额多少等。另外需附带AK信息。
部分错误码对照表
错误码常见原因
BMK_SEARCH_NO_ERROR检索结果正常返回
BMK_SEARCH_SERVER_NO_PERMISSIONS需开通权限功能,用户在API控制台中创建或设置某APP的时候禁用了某项服务,若需开通权限,可进入API控制台为AK勾选对应服务
BMK_SEARCH_SERVER_NO_ADVANCED_PERMISSIONS用户需开通高级权限功能,如:高级权限才允许使用location字段;查询的数据类型与用户类型不匹配;
BMK_SEARCH_SERVER_DISTRICT_NO_DATA所在地区无数据覆盖
BMK_SEARCH_SERVER_DISTRICT_ID_ERROR天气服务查询的区域编码与约定的编码不符
BMK_SEARCH_RESULT_NOT_FOUND没有找到检索结果

上一篇

公交信息检索

下一篇

推荐上车点

本篇文章对您是否有帮助?