获取中国气象台卫星云图

来源:互联网 发布:nginx 密码 编辑:程序博客网 时间:2024/05/01 18:30

因为项目需要,免费的API也没找到,所以自己用JS来扒取卫星云图
卫星云图url
(希望气象台的小哥不会改路径…)


首先是保存云图url,找路径规律,不同时间点url如下(以下url只做参考,实际已失效,中国气象台卫星云图应该是只留存了最近5小时内的10张图):
11.15:
http://image.nmc.cn/product/2017/12/14/WXCL/medium/SEVP_NSMC_WXCL_ASC_E99_ACHN_LNO_PY_20171214031500000.JPG
10.45:
http://image.nmc.cn/product/2017/12/14/WXCL/medium/SEVP_NSMC_WXCL_ASC_E99_ACHN_LNO_PY_20171214024500000.JPG
10.15:
http://image.nmc.cn/product/2017/12/14/WXCL/medium/SEVP_NSMC_WXCL_ASC_E99_ACHN_LNO_PY_20171214021500000.JPG
09.45:
http://image.nmc.cn/product/2017/12/14/WXCL/medium/SEVP_NSMC_WXCL_ASC_E99_ACHN_LNO_PY_20171214014500000.JPG
09.15:
http://image.nmc.cn/product/2017/12/14/WXCL/medium/SEVP_NSMC_WXCL_ASC_E99_ACHN_LNO_PY_20171214011500000.JPG
08.45:
http://image.nmc.cn/product/2017/12/14/WXCL/medium/SEVP_NSMC_WXCL_ASC_E99_ACHN_LNO_PY_20171214004500000.JPG
08.15:
http://image.nmc.cn/product/2017/12/14/WXCL/medium/SEVP_NSMC_WXCL_ASC_E99_ACHN_LNO_PY_20171214001500000.JPG
07.45:
http://image.nmc.cn/product/2017/12/13/WXCL/medium/SEVP_NSMC_WXCL_ASC_E99_ACHN_LNO_PY_20171213234500000.JPG

从上可知后面的数字为:年+月+日+时+分(url均为UTC时间,但图片上水印是北京时间)且半小时更新一次

代码:

window.onload=function(){    var arr = new Array();            //获取整点过15分钟卫星云图url            function time15() {                var date1 = new Date();                //获取当前时间的时间戳                time1 = Date.parse(date1);                //当前时间减去5个小时                date1.setHours(date1.getHours() - 5);                //获取5小时前时间戳                time2 = Date.parse(date1);                var ok = 1;                while(ok) {                    time1 = time1 - 1000 * 60 * 60; //每一小时执行一次                    if(time1 < time2) {                        ok = 0;                    } else {                        date2 = new Date(time1)                        var hour = date2.getUTCHours().toString(); //utc时                        var days = date2.getUTCDate().toString(); //utc天                        var month = (date2.getUTCMonth() + 1).toString();                        var years = date2.getUTCFullYear().toString();                        if(hour.length == 1) {                            hour = "0" + hour;                        }                        if(days.length == 1) {                            days = "0" + days;                        }                        if(month.length == 1) {                            month = "0" + month;                        }                        var str = "http://image.nmc.cn/product/" + years + "/" + month + "/" + days + "/WXCL/medium/SEVP_NSMC_WXCL_ASC_E99_ACHN_LNO_PY_" + years + month + days + hour + 15 + "00000.JPG"                        arr.push(str)                    }                }            }            time15();            //获取整点过45分钟卫星云图url            function time45(){                var date1 = new Date();                //获取当前时间的时间戳                time1 = Date.parse(date1);                //当前时间减去5个小时                date1.setHours(date1.getHours() - 5);                //获取5小时前时间戳                time2 = Date.parse(date1);                var ok = 1;                while(ok) {                    time1 = time1 - 1000 * 60 * 60; //每一小时执行一次                    if(time1 < time2) {                        ok = 0;                    } else {                        date2 = new Date(time1)                        var hour = date2.getUTCHours().toString(); //utc时                        var days = date2.getUTCDate().toString(); //utc天                        var month = (date2.getUTCMonth() + 1).toString();                        var years = date2.getUTCFullYear().toString();                        if(hour.length == 1) {                            hour = "0" + hour;                        }                        if(days.length == 1) {                            days = "0" + days;                        }                        if(month.length == 1) {                            month = "0" + month;                        }                        var str = "http://image.nmc.cn/product/" + years + "/" + month + "/" + days + "/WXCL/medium/SEVP_NSMC_WXCL_ASC_E99_ACHN_LNO_PY_" + years + month + days + hour + 45 + "00000.JPG"                        arr.push(str)                    }                }            }            time45();            arr.sort()//数组排序            arr.reverse()//逆序            console.log(arr)    //页面加载完成渲染第一张    document.getElementById('map').innerHTML ="<img src=" + arr[0] + ">";           var i=0;    //左侧箭头点击事件    document.getElementsByClassName('iconLeft')[0].onclick=function(){        i=i+1;        if(i>9){            i=0;        }        document.getElementById('map').innerHTML = "<img src=" + arr[i] + ">"    }    //右侧箭头点击事件    document.getElementsByClassName('iconRight')[0].onclick=function(){        i=i-1;          if(i<0){            i=9;        }        document.getElementById('map').innerHTML = "<img src=" + arr[i] + ">"    }}

以上,本人比较菜,不知道有没有更好更简单的方法,如有请指点一二,感谢。

阅读全文
0 0
原创粉丝点击