当前位置:   article > 正文

前端天气预报功能_js获取天气信息

js获取天气信息

平时经常百度天气情况,于是给自己的博客做了一个获取天气预报的功能

大体步骤是先配置高德地图,申请一个服务编码。然后先调用高德的定位接口获取用户所在城市,在根据城市去查天气预报接口获得数据;

一:配置高德地图

先访问高德官网:高德控制台,注册后申请应用,获取key值。

这个key值可以通用高德提供的所有服务接口,比如定位、天气、路线规划、关键字搜索等。

二:访问接口

1、具体接口文档如下:

定位接口:IP定位-API文档| 高德地图API

天气预报接口:天气查询-API文档 | 高德地图API

2、代码实现较简单,大致如下

  1. GetLocation(getWeathData);
  2. function GetLocation(func) {
  3. let that = this,
  4. locationCookie = this.getSQCookie('sunqBlogLocation'),
  5. sunqBlogLocationCode = this.getSQCookie('sunqBlogLocationCode');
  6. // 如果用户多次访问,一周内不会重复请求定位接口
  7. if(locationCookie){
  8. func(locationCookie,sunqBlogLocationCode);
  9. }else {
  10. axios({
  11. url: 'https://restapi.amap.com/v3/ip',
  12. method: 'post',
  13. params: {
  14. key: 'ba5f9b69f0541123a4dbe142da230b4d'
  15. },
  16. }).then(function (resp) {
  17. func(resp.data.city,resp.data.adcode);
  18. that.setSQCookie('sunqBlogLocation',resp.data.city,3); // 相隔3小时同一浏览器再次访问时会重新定位
  19. that.setSQCookie('sunqBlogLocationCode',resp.data.adcode,3);
  20. }).catch();
  21. }
  22. };
  23. function getWeathData(cityName, cityCode) {
  24. let that = this;
  25. axios({
  26. url: "https://restapi.amap.com/v3/weather/weatherInfo",
  27. method: "GET",
  28. params: {
  29. key: "ba5f9b69f0541123a4dbe142da230b4d",
  30. city: cityCode,
  31. extensions: 'all',
  32. output: "JSON"
  33. },
  34. }).then(function (resp) {
  35. // 此处获得天气预报数据
  36. console.log(resp.data);
  37. that.setSQCookie(
  38. "sunqBlogWeather",
  39. resp.data,
  40. 3
  41. ); // 相隔3小时同一浏览器再次访问时会重新获取天气
  42. })
  43. .catch();
  44. }

三:效果演示

页面右侧组件:孙权的博客

详细代码:Github地址

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/906642
推荐阅读
相关标签
  

闽ICP备14008679号