接口说明
根据经纬度/城市名查询天气的结果
接口示例
http://api.map.baidu.com/telematics/v3/weather?location=成都&output=json&ak=yourkey
百度ak申请地址:http://lbsyun.baidu.com/apiconsole/key
接口参数说明
参数类型 | 参数名称 | 是否必须 | 具体描述 |
---|---|---|---|
String | ak | true | 开发者密钥 |
String | sn | false | 若用户所用ak的校验方式为sn校验时该参数必须。 |
String | location | true | 输入城市名或经纬度,城市名称如:北京,经纬度格式为lng,lat坐标如: location=116.305145,39.982368;城市天气预报中间"|"分隔,location=116.305145,39.982368| 122.305145,36.982368|…. |
String | output | false | 输出的数据格式,默认为xml格式,当output设置为’json’时,输出的为json格式的数据; |
String | coord_type | false | 请求参数坐标类型,默认为gcj02经纬度坐标。允许的值为bd09ll、bd09mc、gcj02、wgs84。bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托坐标,gcj02表示经过国测局加密的坐标。wgs84表示gps获取的坐标。 |
返回结果
参数名称 | 含义 | 说明 | |
---|---|---|---|
currentCity | 当前城市 | 返回城市名 | |
status | 返回结果状态信息 | ||
date | 当前时间 | 年-月-日 | |
results | 天气预报信息 | 白天可返回近期3天的天气情况(今天、明天、后天)、晚上可返回近期4天的天气情况(今天、明天、后天、大后天) | |
results.currentCity | 当前城市 | ||
results.weather_data | weather_data.date | 天气预报时间 | |
weather_data.dayPictureUrl | 白天的天气预报图片url | ||
weather_data.nightPictureUrl | 晚上的天气预报图片url | ||
weather_data.weather | 天气状况 | 所有天气情况(”|”分隔符):晴|多云|阴|阵雨|雷阵雨|雷阵雨伴有冰雹|雨夹雪|小雨|中雨|大雨|暴雨|大暴雨|特大暴雨|阵雪|小雪|中雪|大雪|暴雪|雾|冻雨|沙尘暴|小雨转中雨|中雨转大雨|大雨转暴雨|暴雨转大暴雨|大暴雨转特大暴雨|小雪转中雪|中雪转大雪|大雪转暴雪|浮尘|扬沙|强沙尘暴|霾 | |
weather_data.wind | 风力 | ||
weather_data.temperature | 温度 |
返回的xml格式数据
<?xml version="1.0" encoding="utf-8" ?> <CityWeatherResponse> <error>0</error> <status>success</status> <date>2015-10-20</date> <results> <currentCity>成都</currentCity> <weather_data> <date>周二 10月20日 (实时:25℃)</date> <dayPictureUrl>http://api.map.baidu.com/images/weather/day/yin.png</dayPictureUrl> <nightPictureUrl>http://api.map.baidu.com/images/weather/night/duoyun.png</nightPictureUrl> <weather>阴转多云</weather> <wind>南风微风</wind> <temperature>25 ~ 18℃</temperature> <date>周三</date> <dayPictureUrl>http://api.map.baidu.com/images/weather/day/yin.png</dayPictureUrl> <nightPictureUrl>http://api.map.baidu.com/images/weather/night/xiaoyu.png</nightPictureUrl> <weather>阴转小雨</weather> <wind>南风微风</wind> <temperature>24 ~ 18℃</temperature> <date>周四</date> <dayPictureUrl>http://api.map.baidu.com/images/weather/day/xiaoyu.png</dayPictureUrl> <nightPictureUrl>http://api.map.baidu.com/images/weather/night/xiaoyu.png</nightPictureUrl> <weather>小雨</weather> <wind>北风微风</wind> <temperature>22 ~ 17℃</temperature> <date>周五</date> <dayPictureUrl>http://api.map.baidu.com/images/weather/day/xiaoyu.png</dayPictureUrl> <nightPictureUrl>http://api.map.baidu.com/images/weather/night/xiaoyu.png</nightPictureUrl> <weather>小雨</weather> <wind>北风微风</wind> <temperature>21 ~ 16℃</temperature> </weather_data> <index> <title>穿衣</title> <zs>舒适</zs> <tipt>穿衣指数</tipt> <des>建议着长袖T恤、衬衫加单裤等服装。年老体弱者宜着针织长袖衬衫、马甲和长裤。</des> <title>洗车</title> <zs>较适宜</zs> <tipt>洗车指数</tipt> <des>较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。</des> <title>旅游</title> <zs>适宜</zs> <tipt>旅游指数</tipt> <des>天气较好,温度适宜,总体来说还是好天气哦,这样的天气适宜旅游,您可以尽情地享受大自然的风光。</des> <title>感冒</title> <zs>较易发</zs> <tipt>感冒指数</tipt> <des>昼夜温差较大,较易发生感冒,请适当增减衣服。体质较弱的朋友请注意防护。</des> <title>运动</title> <zs>较适宜</zs> <tipt>运动指数</tipt> <des>阴天,较适宜进行各种户内外运动。</des> <title>紫外线强度</title> <zs>最弱</zs> <tipt>紫外线强度指数</tipt> <des>属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。</des> </index> <pm25>147</pm25> </results> </CityWeatherResponse>
返回的JSON格式的数据:
{
"error": 0,
"status": "success",
"date": "2015-10-20",
"results": [
{
"currentCity": "成都",
"pm25": "152",
"index": [
{
"title": "穿衣",
"zs": "舒适",
"tipt": "穿衣指数",
"des": "建议着长袖T恤、衬衫加单裤等服装。年老体弱者宜着针织长袖衬衫、马甲和长裤。"
},
{
"title": "洗车",
"zs": "较适宜",
"tipt": "洗车指数",
"des": "较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。"
},
{
"title": "旅游",
"zs": "适宜",
"tipt": "旅游指数",
"des": "天气较好,温度适宜,总体来说还是好天气哦,这样的天气适宜旅游,您可以尽情地享受大自然的风光。"
},
{
"title": "感冒",
"zs": "较易发",
"tipt": "感冒指数",
"des": "昼夜温差较大,较易发生感冒,请适当增减衣服。体质较弱的朋友请注意防护。"
},
{
"title": "运动",
"zs": "较适宜",
"tipt": "运动指数",
"des": "阴天,较适宜进行各种户内外运动。"
},
{
"title": "紫外线强度",
"zs": "最弱",
"tipt": "紫外线强度指数",
"des": "属弱紫���线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。"
}
],
"weather_data": [
{
"date": "周二 10月20日 (实时:25℃)",
"dayPictureUrl": "http://api.map.baidu.com/images/weather/day/yin.png",
"nightPictureUrl": "http://api.map.baidu.com/images/weather/night/duoyun.png",
"weather": "阴转多云",
"wind": "南风微风",
"temperature": "25 ~ 18℃"
},
{
"date": "周三",
"dayPictureUrl": "http://api.map.baidu.com/images/weather/day/yin.png",
"nightPictureUrl": "http://api.map.baidu.com/images/weather/night/xiaoyu.png",
"weather": "阴转小雨",
"wind": "南风微风",
"temperature": "24 ~ 18℃"
},
{
"date": "周四",
"dayPictureUrl": "http://api.map.baidu.com/images/weather/day/xiaoyu.png",
"nightPictureUrl": "http://api.map.baidu.com/images/weather/night/xiaoyu.png",
"weather": "小雨",
"wind": "北风微风",
"temperature": "22 ~ 17℃"
},
{
"date": "周五",
"dayPictureUrl": "http://api.map.baidu.com/images/weather/day/xiaoyu.png",
"nightPictureUrl": "http://api.map.baidu.com/images/weather/night/xiaoyu.png",
"weather": "小雨",
"wind": "北风微风",
"temperature": "21 ~ 16℃"
}
]
}
]
}
以下是AS3代码示例:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.HTTPStatusEvent;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest; /**
* @author Frost.Yen
* @E-mail 871979853@qq.com
* @create 2015-10-20 下午3:44:25
*
*/
public class BaiduWeatherTest extends Sprite
{
private var _location:String="成都";//城市名称或者经纬度(如116.305145,39.982368)
private var _webURL:String = "http://api.map.baidu.com/telematics/v3/weather";
private var _ak:String = "ncp4Qv2GGk8XWxCFBo1fOAzt";//百度ak申请地址:http://lbsyun.baidu.com/apiconsole/key
private var _dataType:String=""//默认返回xml格式,如果&output=json则为json格式
private var _ldr:URLLoader = new URLLoader();
public function BaiduWeatherTest()
{
initViews();
initEventListeners();
}
private function initViews():void
{
loadWeather();
}
private function initEventListeners():void
{
_ldr.addEventListener(Event.COMPLETE,onWeatherLoaded);
_ldr.addEventListener(HTTPStatusEvent.HTTP_STATUS,onStatus)
_ldr.addEventListener(IOErrorEvent.IO_ERROR,onError); }
private function loadWeather():void
{
//完整地址示例:http://api.map.baidu.com/telematics/v3/weather?location=成都&output=json&ak=D445c65d79c46492e829a2a6aaba0816&qq-pf-to=pcqq.c2c
_ldr.load(new URLRequest(_webURL+"?location="+encodeURI(_location)+_dataType+"&ak="+_ak));
}
private function onWeatherLoaded(e:Event):void
{
trace(e.target.data);
if(_dataType=="&output=json"){
//json格式
var obj:Object = JSON.parse(e.target.data as String);
parseWeather(obj);
}else if(_dataType == ""){
//xml格式
var xml:XML = XML(e.target.data);
//trace(xml);
}
}
private function onStatus(e:HTTPStatusEvent):void
{
trace("status:"+e.status);
}
private function onError(e:IOErrorEvent):void
{
trace("error:"+e.toString());
}
private function parseWeather(data:Object):void
{
if(!data.hasOwnProperty("results")){
trace("没有查询到数据,请重试...");
loadWeather();
return;
}
var weatherData:Array = [];//天气状况数据
for(var key:String in data){
//trace("---"+key,":",obj[key]+"\n");
if(data[key] is Array){
for(var i:int = 0;i<data[key].length;i++){
if(data[key][i] is Object){
for(var key1:String in data[key][i]){
//trace("***"+key1,":",obj[key][i][key1]+"\n");
if(key1=="weather_data"){
weatherData = data[key][i][key1];
}
}
}
}
}
} }
}
}