Google Weather API 只支持美国地区使用邮政编码进行查询,例如:
http://www.google.com/ig/api?hl=zh-cn&weather=94043
(94043 为 山景城, 美国加州 的邮政编码)
而除了美国以外的地区需要使用经纬度坐标作为参数才能执行 Google Weather API, 例如:
http://www.google.com/ig/api?hl=zh-cn&weather=,,,30670000,104019996
(30670000,104019996 为 成都, 中国大陆 的经纬度坐标)
当然,也可能通行城市名称的汉语拼音来查询,例如:以下是北京的天气
http://www.google.com/ig/api?weather=Beijing
要其它地区的经纬度坐标,可以通过 Google API 提供的国家代码列表及相应的城市经纬度坐标列表可以查询到,以下是 Google API 提供的查询参数:
http://www.google.com/ig/countries?output=xml&hl=zh-cn
(查询 Google 所支持的所有国家的代码,并以 zh-cn 简体中文显示)
http://www.google.com/ig/cities?output=xml&hl=zh-cn&country=cn
C#范例:
using System; using System.Collections.Generic; using System.Text; using System.Xml; using System.Net; ///Code by Roman Alifanov - API by Google ///Posted on http://animaonline.blogspot.com namespace GoogleWeatherAPI_Parser { class Program { static void Main(string[] args)
{ int i = 0; XmlNodeList GWP_NodeList = GoogleWeatherAPI_Parser(@"http://www.google.co.uk/ig/api?weather=Drammen").SelectNodes("xml_api_reply/weather/current_conditions");
Console.WriteLine("Current weather in Drammen: " + GWP_NodeList.Item(i).SelectSingleNode("temp_c").Attributes["data"].InnerText);
Console.ReadLine();
}
private static XmlDocument GoogleWeatherAPI_Parser(string baseUrl)
{ HttpWebRequest GWP_Request;
HttpWebResponse GWP_Response = null; XmlDocument GWP_XMLdoc = null; try { GWP_Request = (HttpWebRequest)WebRequest.Create(string.Format(baseUrl)); GWP_Request.UserAgent = @"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"; GWP_Response = (HttpWebResponse)GWP_Request.GetResponse();
GWP_XMLdoc = new XmlDocument(); GWP_XMLdoc.Load(GWP_Response.GetResponseStream());
}
catch (Exception ex) { Console.WriteLine(ex.Message);
}
GWP_Response.Close();
return GWP_XMLdoc; }
}
}
附:其它天气API
Yahoo:http://developer.yahoo.com/weather/
北京天气(可以通过搜索查找)
http://xml.weather.yahoo.com/forecastrss?p=CHXX0008&u=f
国内API:
北京天气

4 liqwei
2009/11/13 21:03:30 [Report Spam]
还可以利用 139.com 邮箱的邮件到达短信提醒的功能
实现免费的天气短信,我们只要找到一个接口,能定时向指定 139.com 邮箱发送天气邮件就可以了,
这里就有一个自己开发的接口,有兴趣的朋友可以试试:http://api.liqwei.com/weather/subscription.asp
只要输入 139.com 邮箱地址,选择订阅的城市就可以,而且支持订阅多个城市的天气,
自我感觉用起来还行,当然别的邮箱也可以,就是无法收到天气短信,哈哈
3 JianSun
2009/5/6 23:21:05 [Report Spam]
2 ALLOVE
2009/5/6 2:39:37 [Report Spam]
1 Booole
2008/11/7 13:53:10 [Report Spam]