首页 > 技术文章 > js获取天气

superior0325 2016-06-01 20:09 原文

  我们经常看到有的网站显示天气信息,它是怎么实现的呢?今天就来分享一些关于js调用天气API的几种做法。  

  网上也能找到很多种方法,但是一般都是免费的不好用,好用的不免费。

  以前用过新浪的天气api,查询当天和明天的天气还凑合(虽然不是很准),后来有一个要查询七天的需求,试了好多次都不行,只能另辟蹊径了。

  在网上找到一个www.k780.com/ 貌似是国外的,需要注册一下,得到接口需要的参数appkey和sign值,目前是不收费的,下面就把代码粘出来,附带注释

var paramUrl = "http://api.k780.com:88/?app=weather.future&weaid=" + url + "&appkey=" + appkey + "&sign=27c89ecea48a0e28f9c25f23be6a4e40&format=json";
    $.ajax({
        url: paramUrl,
        type: "get",
        dataType: "jsonp",
        jsonp: 'jsoncallback',
        async: false,
        data: "",
       // success: eval(funback)   封装成方法时,这里是回调参数名称
         success:function(data){
            //这里处理返回的结果  json格式的
          }
    });

 其中weaid:地址,可以是名称可以是IP,appkey sign是注册获取的

返回的结果,返回七天的值,这里只截取了一天的,其中值得一提的是weather_icon字段,天气的图片,有几个版本的大图小图,可以在网站上下载

{"success":"1","result":[{"weaid":"2071","days":"2016-06-01","week":"星期三","cityno":"hbyangxin","citynm":"阳新","cityid":"101200603","temperature":"28℃/20℃","humidity":"0℉/0℉","weather":"暴雨转小雨","weather_icon":"http://api.k780.com:88/upload/weather/d/10.gif","weather_icon1":"http://api.k780.com:88/upload/weather/n/7.gif","wind":"北风","winp":"3-4级","temp_high":"28","temp_low":"20","humi_high":"0","humi_low":"0","weatid":"11","weatid1":"8","windid":"20","winpid":"14"}]}

总起来说这个还是比较蛮好用的,参数少,返回值清晰齐全。存在ajax请求跨域问题,现在还没搞太清楚,使用是没问题的,等搞明白了再来补充

 

推荐阅读