获取中国气象台卫星云图
因为项目需要,免费的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 i=0;//图片序号var t;//setTimeoutvar arr = new Array();//获取整点过15分钟卫星云图urlfunction 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分钟卫星云图urlfunction 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()//逆序//页面加载完成渲染当前时期var date=new Date();document.getElementById('datetime').innerHTML=date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日";//页面加载所有的图片到一个对象,以免出现切换图片加载闪屏var img={};for(i=0;i<arr.length;i++){img[i]=arr[i];}//页面加载完成渲染第一张document.getElementById('map').src =img[0]; var map=document.getElementById('map');//循环播放function time(){if(i<=0){i=9;}else{i=i-1;}map.src = img[i];t=setTimeout(time,1000) }function stop(){clearTimeout(t);}//左侧箭头点击事件document.getElementsByClassName('iconLeft')[0].onclick=function(){i=i+1;if(i>9){i=0;}document.getElementById('map').src = img[i];}//右侧箭头点击事件document.getElementsByClassName('iconRight')[0].onclick=function(){i=i-1; if(i<0){i=9;}document.getElementById('map').src = img[i]; }//判断icon类名function isContains(str, substr) {return new RegExp(substr).test(str);}//播放&暂停按钮var boFang=document.getElementById('bofang');boFang.onclick=function(){ //切换播放&暂停icon,执行&停止clearTimeout自执行事件var classVal=bofang.getAttribute("class");if(isContains(classVal,"icon-bofang")){classVal=classVal.replace("icon-bofang","icon-zanting");boFang.setAttribute("class",classVal);time();}else{classVal=classVal.replace("icon-zanting","icon-bofang");boFang.setAttribute("class",classVal);stop();}}}
更新了一下,因为每次渲染都是字符串拼接导致切换一张图片会闪屏(浏览器特性),故把图片都预先加载到一个对象中,图片切换时直接调用对象,就不不会闪屏了。
获取中国气象台卫星云图相关推荐
- android天气预报获取-气象台webservice
一.之前项目需要获取天气预报,然而各个API对免费访问次数都有限制,试了很多种方法,决定使用气象台webservice获取. 二.气象台服务的大概情况:http://www.webxml.com.cn ...
- python爬虫获取中国天气网天气数据 requests BeautifulSoup re
python获取中国天气网天气数据:http://www.weather.com.cn/textFC/henan.shtml main.py # -*- coding: utf-8 -*- impor ...
- C#解析xml文件获取中国的省市县地区名称和zipcode编号
全栈工程师开发手册 (作者:栾鹏) c#教程全解 C#解析xml文件获取中国的省市县名称获zipcode编号.需要提交加载xml文件.获取市级城市时,需要提供省级名称.获取县级城市市需要提供省级和市级 ...
- JS 获取中国、各省、各市、各区的边界经纬度点集
百度地图可以获取省的边界经纬度点集,不能获取中国的边界经纬度点集. 高德地图可以获取中国.各省.各市.各区的边界经纬度点集. 打开高德地图查询边界的网址:https://lbs.amap.com/ap ...
- 获取中国 省市区 js
三个方法用于获取中国的省份.市.县区.从网上找到了中国省市区的json串,然后用js写了一个utl工具,分享给大家. ChinaCity.getProvince = getProvince; Chin ...
- 用java实现网络爬虫,实时获取中国地震台网数据
用java实现网络爬虫,实时获取中国地震台网数据 1.如何从网络中爬取相关数据 2.怎么进行数据处理 3.绘图设计 4. 存在问题: 5.java程序的源文件 5.1 爬虫程序 5.2 绘制柱状图程序 ...
- 根据经纬度确定行政区域_获取中国指定行政区域内所有POIS(兴趣点)的方法
本文首发于:获取中国指定行政区域内所有POIS(兴趣点)的方法xugongli.github.ioGitHub项目源码github.com 早在2017年5月,曾经在知乎上写过一篇文章获取一个城市 ...
- 从百度地图批量获取中国县级以上行政区划边界坐标
从百度地图批量获取中国县级以上行政区划边界坐标 不知道从什么时候开始,在Google地图或是百度地图中用城市或者省名称搜索的时候,你会发现地图上会勾勒出搜索的行政区的轮廓来,这个功能非常人性化. 比如 ...
- html获取中国天气,Json获取中国天气网天气预报的代码
Json获取中国天气网天气预报的代码 文章作者:网友投稿 发布时间:2010-07-14 14:20:08 来源:网络 获取中国天气网天气的代码 var url=escape(http://m.wea ...
- python 网络爬虫 1.3 获取中国天气网8-15天的天气信息,包含: 日期,天气,温度,风力. 将数据存入文档。
题目: 获取中国天气网8-15天的天气信息,包含: 日期,天气,温度,风力. 将数据存入文档. 代码: from requests_html import HTMLSessionurl = " ...
最新文章
- mysql建帐号数据库出现反斜线_[MySQL FAQ]系列 -- 账号密码包含反斜线时怎么办
- leetcode算法题--Remove K Digits
- python代码该怎么简化_Python开发简化代码的六大技巧
- word打印版面自动缩小的问题解决
- Stream Part.7
- Delphi窗体部分属性
- PCB 周期计算采用 SQL 函数调用.net Dll 标量函数 实现
- shell脚本:编辑脚本check_host.sh,自动检测主机如下信息
- AutoCAD.NET开发:PaletteSet
- 中国不必模仿印度软件模式
- 你要如何衡量你的人生?
- 按字节编址、按字编址、按字节寻址、按字寻址。
- 学Python运维,这知识点你肯定会遇到,【必收藏之】nginx 域名跳转相关配置
- 如何快速熟悉一套程序的框架结构
- 中国方言地图的总结与展望
- JAVASwing设置字体,字体大小
- oracle 中sql实现进一、去尾和四舍五入。
- 离散数学 代数系统思维导图
- 网易云动态小视频下载方法
- matlab 产生高斯噪声和高斯白噪声方法
热门文章
- Linux查看opencv版本
- 2019年ArcGIS JavaScript API 4.x添加天地图矢量地图(球面墨卡托)
- CISP-PTE考试介绍
- CentOS6.7 SSH安装与配置
- Origin自动寻峰
- 抖音怎么知道自己上热门 抖音是靠md5识别视频的
- 用python计算100以内所有奇数的和_Python-while 计算100以内奇数和的方法
- android四级联动机制,小程序四级联动(wepy)
- C# 后端代码中使用事务
- 学计算机的装系统都不会,为什么刚买的新电脑,却不支持安装Win7系统,背后的真实原因...