网站首页 | 网站地图
网站制作爱好者
网络编程 | 数据教程 | 网页制作 | 图形图象 | 冲浪宝典 | 邮件工具 | 软件下载 | 网页浏览 |  QQ教程 
操作系统 | 办公软件 | 软件教学 | 站长之家 | 网络安全 | 邮件系统 | 认证考试 | 组网技术 | 通信技术
网站首页 -> 网络编程 -> ASP实例
 
文章搜索
网络编程分类
ASP教程
ASP实例
ASP技巧
ASP文摘
PHP教程
PHP技巧
PHP实例
PHP文摘
JSP教程
JSP技巧
JSP实例
JSP文摘
ASP.NET教程
ASP.NET技巧
ASP.NET实例
ASP.NET应用
xml教程
xsl教程
xml技巧
C#教程
C#应用
Delphi教程
Perl教程
Shell教程
Ajax教程
Visual Basic教程
Java教程
J2EE/J2ME教程
C/C++教程
移动解决方案
移动短信技术
移动行业动态
软件工程
ASP利用prototype和Google的weather api做天气预报

文章类别:ASP实例 | 发表日期:2009-7-3

利用prototype和GOOGLE的weather api做天气预报
想拿prototype练练手,就用prototype做个天气预报吧。
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 为 成都, 中国大陆 的经纬度坐标)
要其它地区的经纬度坐标,可以通过 Google API 提供的国家代码列表及相应的城市经纬度坐标列表可以查询到,以下是 Google API 提供的查询参数:
http://www.google.com/ig/countries?output=xml&hl=zh-cn
ASP演示:http://www.knowsky.com/tools/tianqiyubao.asp
(查询 Google 所支持的所有国家的代码,并以 zh-cn 简体中文显示)
http://www.google.com/ig/cities?output=xml&hl=zh-cn&country=cn

:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
</head>
<script language="javascript" src="prototype.js"></script>
<script language="javascript">

//取得中国所有的城市
function getCity()
{
var url = "http://www.google.com/ig/cities";
var cityPara = {method:"get" ,
     parameters:"output=xml&hl=zh-cn&country=cn" ,
     onComplete:showCityRespose
     };
var cityRequest = new Ajax.Request( url , cityPara);
}

function showCityRespose(originalRequest)
{
cityInfo = originalRequest.responseXML;
cityNodes = cityInfo.getElementsByTagName("city");
for(var i=0;i<cityNodes.length;i++){
  var city = cityNodes[i];
  var cityName = getData( city , "name");
  var latitude = getData( city ,"latitude_e6");
  var longitude= getData( city ,"longitude_e6");
  var option =document.createElement("option");
  $("city").options.add(option);
  option.innerText = cityName;
  option.value=",,,"+latitude+","+longitude;
}
}
function forecast(city)
{
$("result").innerHTML = "请稍等";
var url = "http://www.google.com/ig/api";
var para = {method:"get" ,
  parameters:"hl=zh-cn&weather="+city ,
  onComplete:showResult
};
var forecastRequest = new Ajax.Request(url , para);
}

//显示预报结果
function showResult(originalRequest)
{
$("result").innerHTML = "";
resultXML = originalRequest.responseXML;
forecastNodes = resultXML.getElementsByTagName("forecast_conditions");
for(i=0;i<forecastNodes.length;i++){
  var oneNode = forecastNodes[i];
  var weekday = getData( oneNode , "day_of_week");
  var low = getData( oneNode , "low");
  var high = getData( oneNode , "high");
  var icon = getData( oneNode , "icon");
  var result = document.createElement("div");
  result.appendChild(document.createTextNode(weekday));
  result.appendChild(document.createElement("br"));
  result.appendChild(document.createTextNode("最低温度"+low));
  result.appendChild(document.createElement("br"));
  result.appendChild(document.createTextNode("最高温度"+high));
  result.appendChild(document.createElement("br"));
  var image = document.createElement("img");
  image.setAttribute("src" , "http://www.google.com"+icon);
  result.appendChild(image);
  $("result").appendChild(result);
}
}

//取得数据值
function getData(parentNode , nodeName)
{
return parentNode.getElementsByTagName(nodeName)[0].getAttribute("data");
}
</script>
<body onLoad="getCity()">
<div id="selectcity">
<form name="form1" method="post" action="">
<select name="city" id="city" onChange="forecast(this.value)">
        <option value="">选择城市</option>
     </select>   
  </form>
</div>

<div id="result">

</div>
</body>
</html>

ASP演示:http://www.knowsky.com/tools/tianqiyubao.asp
注意这段代码在IE下可以使用,在IE里XMLHTTPREQUEST可以选择允许跨域。
在FF下,就不能使用了:(
解决办法:你可以先用PHP读下来GOOGLE提供的数据,再用XML形式提供给这个程序,就可以啦。

上一篇:ASP常用函数:getpy() 汉字转为拼音 人气:2920
下一篇:asp版域名查询的数据库接口 人气:1733
点击此处浏览全部weather api的内容
与此同时其他会员正在浏览中的教程:
02 诺基亚6788 入手一周体会.
04 浅谈国内浏览器市场群雄逐鹿的局面 .
03 ASP利用prototype和Google的weather api做天气预报.
04 导航网站出路在哪里.
26 理工科学生及工程人员必备计算器——Solution for S60v3.
05 Java没有“sizeof”.
23 Spring破冰之旅 始于足下.
04 身边的案例:专业和非专业的差距.
05 用jscript对表单数据进行utf-8编码(无奈之下的做法).
02 在.NET 应用程序中用System.Web.Mail 发送电子邮件.
 

Copyright© 2005-2008 网站制作爱好者 www.DevDao.com All rights reserved

Valid CSS!