前端天气预报功能

该文章介绍了如何通过配置高德地图API,首先进行IP定位获取用户城市,然后调用天气查询接口,实现在个人博客上显示天气预报的功能。代码示例中使用了axios库进行接口调用,并存储cookie避免频繁请求。
摘要由CSDN通过智能技术生成

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

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

一:配置高德地图

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

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

二:访问接口

1、具体接口文档如下:

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

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

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

GetLocation(getWeathData);

function GetLocation(func) {
    let that = this,
      locationCookie = this.getSQCookie('sunqBlogLocation'),
      sunqBlogLocationCode = this.getSQCookie('sunqBlogLocationCode');

    // 如果用户多次访问,一周内不会重复请求定位接口
    if(locationCookie){
      func(locationCookie,sunqBlogLocationCode);
    }else {
      axios({
        url: 'https://restapi.amap.com/v3/ip',
        method: 'post',
        params: {
          key: 'ba5f9b69f0541123a4dbe142da230b4d'
        },
      }).then(function (resp) {
        func(resp.data.city,resp.data.adcode);
        that.setSQCookie('sunqBlogLocation',resp.data.city,3); // 相隔3小时同一浏览器再次访问时会重新定位
        that.setSQCookie('sunqBlogLocationCode',resp.data.adcode,3);
      }).catch();
    }
  };

function getWeathData(cityName, cityCode) {
      let that = this;
      axios({
        url: "https://restapi.amap.com/v3/weather/weatherInfo",
        method: "GET",
        params: {
          key: "ba5f9b69f0541123a4dbe142da230b4d",
          city: cityCode,
          extensions: 'all',
          output: "JSON"
        },
      }).then(function (resp) {
          //  此处获得天气预报数据
          console.log(resp.data);

          that.setSQCookie(
            "sunqBlogWeather",
            resp.data,
            3
          ); // 相隔3小时同一浏览器再次访问时会重新获取天气
        })
        .catch();
    }

三:效果演示

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

详细代码:Github地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sun_qqq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值