基于Web 服务的天气预报查询系统

(1)    Web Service 地址:

http://www.webxml.com.cn/WebServices/WeatherWebService.asmx

(2)    增加WebService引用

(3)    天气预报图例说明

http://www.webxml.com.cn/zh_cn/weather_icon.aspx

(4)    PDA界面如下所示:

 

(5)    根据getWeatherbyCityName方法获得天气信息

调用方法如下:输入参数:theCityName = 城市中文名称(国外城市可用英文)或城市代码(不输入默认为上海市),如:上海 58367,如有城市名称重复请使用城市代码查询(可通过 getSupportCity getSupportDataSet 获得);返回数据: 一个一维数组 String(22),共有23个元素。

String(0) String(4):省份,城市,城市代码,城市图片名称,最后更新时间。String(5)

String(11):当天的 气温,概况,风向和风力,天气趋势开始图片名称(以下称:图标一),天气趋势结束图片名称(以下称:图标二),现在的天气实况,天气和生活指数。String(12) String(16):第二天的气温,概况,风向和风力,图标一,图标二。String(17) String(21):第三天的 气温,概况,风向和风力,图标一,图标二。String(22) 被查询的城市或地区的介绍

代码如下:

 

代码
 label2.Text = "";
 
string city = this.lblCurrentCity.Text.Trim();
 SmartDeviceProject2.cn.com.webxml.www.WeatherWebService web_service 
= new SmartDeviceProject2.cn.com.webxml.www.WeatherWebService();
 
string[] info = web_service.getWeatherbyCityName(city);
 
for (int i = 0; i < info.Length; i++)
  {
  label2.Text 
+= info[i].ToString();
  }

(6)    天气图标显示

根据天气预报图例说明,创建资源目录,目录名称是Resources。拷贝图标文件到对应的目录下面。在资源文件中选择“图像”把图标增加拷贝到资源文件里面。


 

 

 

(7)    代码编写如下:

 

代码
string pic1Str = info[8].Trim();
string pic2Str = info[9].Trim();
this.pic1.Image = GetPicture(pic1Str);
this.pic2.Image = GetPicture(pic2Str);
private Bitmap GetPicture(string pic_name)
{
  
switch (pic_name)
  {
  
case "0.gif"return SmartDeviceProject2.Properties.Resources.b_0;
  
case "1.gif"return SmartDeviceProject2.Properties.Resources.b_1;
  
case "2.gif"return SmartDeviceProject2.Properties.Resources.b_2;
  
case "3.gif"return SmartDeviceProject2.Properties.Resources.b_3;
  
case "4.gif"return SmartDeviceProject2.Properties.Resources.b_4;
  
case "5.gif"return SmartDeviceProject2.Properties.Resources.b_5;
  
case "6.gif"return SmartDeviceProject2.Properties.Resources.b_6;
  
case "7.gif"return SmartDeviceProject2.Properties.Resources.b_7;
  
case "8.gif"return SmartDeviceProject2.Properties.Resources.b_8;
  
case "9.gif"return SmartDeviceProject2.Properties.Resources.b_9;
  
case "10.gif"return SmartDeviceProject2.Properties.Resources.b_10;
  
case "11.gif"return SmartDeviceProject2.Properties.Resources.b_11;
  
case "12.gif"return SmartDeviceProject2.Properties.Resources.b_12;
  
case "13.gif"return SmartDeviceProject2.Properties.Resources.b_13;
  
case "14.gif"return SmartDeviceProject2.Properties.Resources.b_14;
  
case "15.gif"return SmartDeviceProject2.Properties.Resources.b_15;
  
case "16.gif"return SmartDeviceProject2.Properties.Resources.b_16;
  
case "17.gif"return SmartDeviceProject2.Properties.Resources.b_17;
  
case "18.gif"return SmartDeviceProject2.Properties.Resources.b_18;
  
case "19.gif"return SmartDeviceProject2.Properties.Resources.b_19;
  
case "20.gif"return SmartDeviceProject2.Properties.Resources.b_20;
  
case "21.gif"return SmartDeviceProject2.Properties.Resources.b_21;
  
case "22.gif"return SmartDeviceProject2.Properties.Resources.b_22;
  
case "23.gif"return SmartDeviceProject2.Properties.Resources.b_23;
  
case "24.gif"return SmartDeviceProject2.Properties.Resources.b_24;
  
case "25.gif"return SmartDeviceProject2.Properties.Resources.b_25;
  
case "26.gif"return SmartDeviceProject2.Properties.Resources.b_26;
  
case "27.gif"return SmartDeviceProject2.Properties.Resources.b_27;
  
case "28.gif"return SmartDeviceProject2.Properties.Resources.b_28;
  
case "29.gif"return SmartDeviceProject2.Properties.Resources.b_29;
  
case "30.gif"return SmartDeviceProject2.Properties.Resources.b_30;
  
case "31.gif"return SmartDeviceProject2.Properties.Resources.b_31;                
}
  
return SmartDeviceProject2.Properties.Resources.b_nothing;
}

 

 

 

(8)    模拟器测试,注意联网设置:

 

 

 查询的时候,友好的用户体验代码如下:

 

Cursor.Current = Cursors.WaitCursor;
天气预报查询
Cursor.Current 
= Cursors.Default;

 

 

 

 

posted @ 2010-12-22 16:19  jhtchina  阅读(1755)  评论(0)    收藏  举报