因为项目需要,免费的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();}}}

更新了一下,因为每次渲染都是字符串拼接导致切换一张图片会闪屏(浏览器特性),故把图片都预先加载到一个对象中,图片切换时直接调用对象,就不不会闪屏了。

获取中国气象台卫星云图相关推荐

  1. android天气预报获取-气象台webservice

    一.之前项目需要获取天气预报,然而各个API对免费访问次数都有限制,试了很多种方法,决定使用气象台webservice获取. 二.气象台服务的大概情况:http://www.webxml.com.cn ...

  2. python爬虫获取中国天气网天气数据 requests BeautifulSoup re

    python获取中国天气网天气数据:http://www.weather.com.cn/textFC/henan.shtml main.py # -*- coding: utf-8 -*- impor ...

  3. C#解析xml文件获取中国的省市县地区名称和zipcode编号

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 C#解析xml文件获取中国的省市县名称获zipcode编号.需要提交加载xml文件.获取市级城市时,需要提供省级名称.获取县级城市市需要提供省级和市级 ...

  4. JS 获取中国、各省、各市、各区的边界经纬度点集

    百度地图可以获取省的边界经纬度点集,不能获取中国的边界经纬度点集. 高德地图可以获取中国.各省.各市.各区的边界经纬度点集. 打开高德地图查询边界的网址:https://lbs.amap.com/ap ...

  5. 获取中国 省市区 js

    三个方法用于获取中国的省份.市.县区.从网上找到了中国省市区的json串,然后用js写了一个utl工具,分享给大家. ChinaCity.getProvince = getProvince; Chin ...

  6. 用java实现网络爬虫,实时获取中国地震台网数据

    用java实现网络爬虫,实时获取中国地震台网数据 1.如何从网络中爬取相关数据 2.怎么进行数据处理 3.绘图设计 4. 存在问题: 5.java程序的源文件 5.1 爬虫程序 5.2 绘制柱状图程序 ...

  7. 根据经纬度确定行政区域_获取中国指定行政区域内所有POIS(兴趣点)的方法

    本文首发于:获取中国指定行政区域内所有POIS(兴趣点)的方法​xugongli.github.ioGitHub项目源码​github.com 早在2017年5月,曾经在知乎上写过一篇文章获取一个城市 ...

  8. 从百度地图批量获取中国县级以上行政区划边界坐标

    从百度地图批量获取中国县级以上行政区划边界坐标 不知道从什么时候开始,在Google地图或是百度地图中用城市或者省名称搜索的时候,你会发现地图上会勾勒出搜索的行政区的轮廓来,这个功能非常人性化. 比如 ...

  9. html获取中国天气,Json获取中国天气网天气预报的代码

    Json获取中国天气网天气预报的代码 文章作者:网友投稿 发布时间:2010-07-14 14:20:08 来源:网络 获取中国天气网天气的代码 var url=escape(http://m.wea ...

  10. python 网络爬虫 1.3 获取中国天气网8-15天的天气信息,包含: 日期,天气,温度,风力. 将数据存入文档。

    题目: 获取中国天气网8-15天的天气信息,包含: 日期,天气,温度,风力. 将数据存入文档. 代码: from requests_html import HTMLSessionurl = " ...

最新文章

  1. mysql建帐号数据库出现反斜线_[MySQL FAQ]系列 -- 账号密码包含反斜线时怎么办
  2. leetcode算法题--Remove K Digits
  3. python代码该怎么简化_Python开发简化代码的六大技巧
  4. word打印版面自动缩小的问题解决
  5. Stream Part.7
  6. Delphi窗体部分属性
  7. PCB 周期计算采用 SQL 函数调用.net Dll 标量函数 实现
  8. shell脚本:编辑脚本check_host.sh,自动检测主机如下信息
  9. AutoCAD.NET开发:PaletteSet
  10. 中国不必模仿印度软件模式
  11. 你要如何衡量你的人生?
  12. 按字节编址、按字编址、按字节寻址、按字寻址。
  13. 学Python运维,这知识点你肯定会遇到,【必收藏之】nginx 域名跳转相关配置
  14. 如何快速熟悉一套程序的框架结构
  15. 中国方言地图的总结与展望
  16. JAVASwing设置字体,字体大小
  17. oracle 中sql实现进一、去尾和四舍五入。
  18. 离散数学 代数系统思维导图
  19. 网易云动态小视频下载方法
  20. matlab 产生高斯噪声和高斯白噪声方法

热门文章

  1. Linux查看opencv版本
  2. 2019年ArcGIS JavaScript API 4.x添加天地图矢量地图(球面墨卡托)
  3. CISP-PTE考试介绍
  4. CentOS6.7 SSH安装与配置
  5. Origin自动寻峰
  6. 抖音怎么知道自己上热门 抖音是靠md5识别视频的
  7. 用python计算100以内所有奇数的和_Python-while 计算100以内奇数和的方法
  8. android四级联动机制,小程序四级联动(wepy)
  9. C# 后端代码中使用事务
  10. 学计算机的装系统都不会,为什么刚买的新电脑,却不支持安装Win7系统,背后的真实原因...