jquery和雅虎的yql服务实现天气预报服务示例


Posted in Javascript onFebruary 08, 2014

本代码不涉及任何后端开发代码(如.Net,JAVA等)。目前最权威的天气预报数据是中国天气网(http://www.weather.com.cn/),因为这个是官方提供的气象数据,除了商业的增值服务外,还提供了免费的以JSON数据格式返回的气象数据,以查看杭州的天气数据为例,可以输入以下地址:http://m.weather.com.cn/data/101210101.html ,返回的JSON数据格式如下图:

YQL服务可以实现对网上不同数据源的query,filter,combine(查询,过滤,合并),提供类似SQL,具体地址如下:http://developer.yahoo.com/yql/console/ 。当实施查询的时候,YQL服务就会访问网络上的数据源,传输数据,返回XML或者JSON形式的数据结果。YQL可以使用许多类型的数据源,包括Yahoo!Web services 或者其他的网络服务,和网络数据类型例如:HTML, XML, RSS,和Atom。

因此可以通过两者的结合使用,完成天气预报功能的开发,具体JS代码如下:

jquery和雅虎的yql服务实现天气预报服务示例

function getWeather() {             $.getJSON("http://query.yahooapis.com/v1/public/yql", {
                 q: "select * from json where url=\"http://m.weather.com.cn/data/101210101.html\"",
                format: "json"
            }, function (data) {
                if (data.query.results) {
                    //$("#content").text(JSON.stringify(data.query.results));
                    var J_data = JSON.parse(JSON.stringify(data.query.results));
                     //alert(J_data.weatherinfo.city);
                       $("#content").append("<p>"+J_data.weatherinfo.city+"天气预报(数据来源中国天气网)"+"</p>");
                     $("#content").append("<p>"+J_data.weatherinfo.date_y+" "+J_data.weatherinfo.week+" "+J_data.weatherinfo.temp1+" "+J_data.weatherinfo.weather1+" "+J_data.weatherinfo.wind1+" "+J_data.weatherinfo.index+" "+J_data.weatherinfo.index_d+"</p>");
                     var t= J_data.weatherinfo.date_y;
                     t=t.replace("年","/");
                     t=t.replace("月","/");
                     t=t.replace("日","");

                     var tdy = new Date(t);  
                     var t2 = new Date();       
                   
                      t2.setDate(tdy.getDate()+1);
                    
                      $("#content").append("<p>"+ t2.Format("yyyy年MM月dd日")+" "+getweekdays(t2)+" "+J_data.weatherinfo.temp2+" "+J_data.weatherinfo.weather2+" "+J_data.weatherinfo.wind2+"</p>");
                       var t3 = new Date();
                      t3.setDate(tdy.getDate()+2);
                      $("#content").append("<p>"+t3.Format("yyyy年MM月dd日")+" "+getweekdays(t3)+" "+J_data.weatherinfo.temp3+" "+J_data.weatherinfo.weather3+" "+J_data.weatherinfo.wind3+"</p>");
                      var t4 = new Date();
                      t4.setDate(tdy.getDate()+3);
                      $("#content").append("<p>"+t4.Format("yyyy年MM月dd日")+" "+getweekdays(t4)+" "+J_data.weatherinfo.temp4+" "+J_data.weatherinfo.weather4+" "+J_data.weatherinfo.wind4+"</p>");
                      var t5 = new Date();
                      t5.setDate(tdy.getDate()+4);
                      $("#content").append("<p>"+t5.Format("yyyy年MM月dd日")+" "+getweekdays(t5)+" "+J_data.weatherinfo.temp5+" "+J_data.weatherinfo.weather5+" "+J_data.weatherinfo.wind5+"</p>");
                      var t6 = new Date();
                      t6.setDate(tdy.getDate()+5);
                      $("#content").append("<p>"+t6.Format("yyyy年MM月dd日")+" "+getweekdays(t6)+" "+J_data.weatherinfo.temp6+" "+J_data.weatherinfo.weather6+" "+J_data.weatherinfo.wind6+"</p>");
 
                     //alert(getweekdays(t2)); 
                } else {
                     $("#content").text('no such code: ' + code);
                 }
             });
          //$.getJSON("http://m.weather.com.cn/data/101210101.html", null, function(json) { alert(json); });             
        }
        function getweekdays(datey)
        {
           if(datey.getDay()==0)
           {
             return "星期日";
           }
           else if(datey.getDay()==1)
           {
              return "星期一";
           }
           else if(datey.getDay()==2)
           {
              return "星期二";
           }
           else if(datey.getDay()==3)
           {
              return "星期三";
           }
           else if(datey.getDay()==4)
           {
              return "星期四";
           }
           else if(datey.getDay()==5)
           {
              return "星期五";
           }
           else if(datey.getDay()==6)
           {
              return "星期六";
           }
 
        }

最终实现的效果,如下图:

jquery和雅虎的yql服务实现天气预报服务示例

Javascript 相关文章推荐
JSDoc 介绍使用规范JsDoc的使用介绍
Feb 12 Javascript
Javascript的严格模式strict mode详细介绍
Jun 06 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
Aug 06 Javascript
JS实现的文字与图片定时切换效果代码
Oct 06 Javascript
jQuery插件passwordStrength密码强度指标详解
Jun 24 Javascript
jQuery实现的自定义滚动条实例详解
Sep 20 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
Nov 07 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 Javascript
mint-ui 时间插件使用及获取选择值的方法
Feb 09 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
Mar 22 Javascript
微信小程序仿知乎实现评论留言功能
Nov 28 Javascript
实现一个Vue自定义指令懒加载的方法示例
Jun 04 Javascript
遍历DOM对象内的元素属性示例代码
Feb 08 #Javascript
JS的参数传递示例介绍
Feb 08 #Javascript
js控制分页打印、打印分页示例
Feb 08 #Javascript
javascript中的self和this用法小结
Feb 08 #Javascript
javascript中match函数的用法小结
Feb 08 #Javascript
纯JS实现动态时间显示代码
Feb 08 #Javascript
js数字转换为float,取N位小数
Feb 08 #Javascript
You might like
日本十大惊悚动漫
2020/03/04 日漫
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
js 获取radio按钮值的实例
2013/08/17 Javascript
js类型转换与引用类型详解(Boolean_Number_String)
2014/03/07 Javascript
jquery.idTabs 选项卡使用示例代码
2014/09/03 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
2017/11/20 Javascript
从vue源码看props的用法
2019/01/09 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
layer ui 导入文件之前传入数据的实例
2019/09/23 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
jquery实现直播视频弹幕效果
2020/02/25 jQuery
JS轮播图的实现方法2
2020/08/25 Javascript
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
django 修改server端口号的方法
2018/05/14 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
童装店创业计划书
2014/01/09 职场文书
乡镇领导班子批评与自我批评材料
2014/09/23 职场文书
2014年统计工作总结
2014/11/21 职场文书
八年级英语教学反思
2016/02/15 职场文书
python中 Flask Web 表单的使用方法
2022/05/20 Python