赞
踩
平时经常百度天气情况,于是给自己的博客做了一个获取天气预报的功能
大体步骤是先配置高德地图,申请一个服务编码。然后先调用高德的定位接口获取用户所在城市,在根据城市去查天气预报接口获得数据;
先访问高德官网:高德控制台,注册后申请应用,获取key值。
这个key值可以通用高德提供的所有服务接口,比如定位、天气、路线规划、关键字搜索等。
定位接口:IP定位-API文档| 高德地图API
天气预报接口:天气查询-API文档 | 高德地图API
- 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地址
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。