获取中国气象台卫星云图
来源:互联网 发布: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] + ">" }}
以上,本人比较菜,不知道有没有更好更简单的方法,如有请指点一二,感谢。
- 获取中国气象台卫星云图
- 中国气象台API(2017.09)
- 使用python获取实时卫星云图
- android天气预报获取-气象台webservice
- 小小气象台 绿色
- Winform调用风云二号卫星云图
- MVC C#在后台接收一个气象台Json,在前台可以弹出json中所有的数据,但是现在想获取气象Json中每一个对象
- 获取最新中国行政区划
- 获取中国 省市区 js
- [下载]三维卫星云图显示系统V2.0
- 观察者模式-气象台的实现与应用
- 西安市气象台“三辆直通车”开进周至县
- 飞思普动态卫星云图桌面(安装版)V2.5
- 9210的Micaps第13类卫星云图数据
- Winform调用风云二号卫星云图(更改后版本)
- java获取中国城市代码 中国城市ID
- java获取中国城市代码 中国城市ID
- 烟台气象台发布蓝色预警信号: 今日大到暴雪
- SpringMVC-mybatis参数绑定
- Redis中的List类型与消息队列的不同之处。
- 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,
- [BZOJ3530]-[Sdoi2014]数数-AC自动机+数位DP
- Python基础篇之数学运算符
- 获取中国气象台卫星云图
- IMAX6Q+DM9000+DP83640设计原理分享
- layui.open属性如:打开一个弹出层
- redis理论知识与简单应用
- SpringBoot学习-支持Jersey
- effective C++ 学习 0_导读
- cookie 和session 的区别详解
- 自定义拦截器的两种写法
- linux解决文件读写权限的设置问题