vue使用的百度地图的天气查询功能

2023-11-17

首先需要在 Vue.js 项目中安装百度地图 JavaScript API SDK,并获取相应的密钥(ak)。然后,可以按照以下步骤使用百度地图的天气查询功能并使用 Axios 进行请求:

官网文档:https://lbsyun.baidu.com/faq/api?title=webapi/weather/base

  1. index.html 中添加百度地图 JavaScript API SDK 的引用:
<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=YOUR_AK"></script>

请将 YOUR_AK 替换为你自己在百度地图开放平台申请的密钥。

  1. 在需要使用天气查询功能的组件中,用以下代码创建一个名为 map 的百度地图实例:
created() {
  const map = new BMap.Map("map-container");
  this.map = map;
}

其中 "map-container" 是容器元素的 ID,可以根据需要替换成其他值。同时,需要在 data 属性中添加 map 字段,以便在后续使用中保持对该实例的引用。

  1. 创建一个 getWeather 方法,用于向百度地图天气 API 发送请求并处理返回结果:
methods: {
  async getWeather() {
    try {
      const res = await axios.get(
        "https://api.map.baidu.com/weather/v1/?district_id=110000&data_type=all&ak=YOUR_AK"
      );
      // 处理返回结果
    } catch (error) {
      console.error(error);
    }
  }
}

请将 YOUR_AK 替换为你自己在百度地图开放平台申请的密钥。此处使用了 Axios 库发送 GET 请求,并将返回结果存储在 res 变量中。

  1. 在组件模板中,添加一个按钮来触发 getWeather 方法:
<button @click="getWeather">查询天气</button>
{
    "status":0,
    "result":{
        "location":{
            "country":"中国",
            "province":"北京市",
            "city":"北京市",
            "name":"东城",
            "id":"110101"
        },
        "now":{
            "temp":4,
            "feels_like":1,
            "rh":73,
            "wind_class":"2级",
            "wind_dir":"东风",
            "text":"多云",
            "prec_1h":0,
            "clouds":999999,
            "vis":3471,
            "aqi":140,
            "pm25":107,
            "pm10":0,
            "no2":23,
            "so2":22,
            "o3":70,
            "co":1.7,
            "uptime":"20200220143500"
        },
        "indexes":[
            {
                "name":"晨练指数",
                "brief":"较适宜",
                "detail":"天气阴沉,请避免在林中晨练。"
            },
            {
                "name":"洗车指数",
                "brief":"适宜",
                "detail":"天气较好,适合擦洗汽车。"
            },
            {
                "name":"感冒指数",
                "brief":"易发",
                "detail":"天凉,昼夜温差大,易感冒"
            },
            {
                "name":"紫外线指数",
                "brief":"最弱",
                "detail":"辐射弱,涂擦SPF8-12防晒护肤品。"
            },
            {
                "name":"穿衣指数",
                "brief":"较冷",
                "detail":"建议着厚外套加毛衣等服装。"
            },
            {
                "name":"运动指数",
                "brief":"较适宜",
                "detail":"气温较低,在户外运动请注意增减衣物。"
            }
        ],
        "alerts":[
            {
                "type": "道路冰雪",
                "level": "蓝色预警",
                "title": "市气象局发布道路冰雪蓝色预警[IV级/一般]", 
                "desc": "市气象局发布道路冰雪蓝色预警信号:受降雪天气影响,
                        预计未来 24 小时我市将出现对交通有影响的道路结冰或积雪, 
                        请有关部门及广大群众做好防范工作。"
            }

        ],
        "forecasts":[
            {
                "date":"2020-02-20",
                "week":"星期四",
                "high":7,
                "low":-2,
                "wc_day":"<3级",
                "wc_night":"<3级",
                "wd_day":"东南风",
                "wd_night":"北风",
                "text_day":"多云",
                "text_night":"阴",
                "aqi":93
            },
            {
                "date":"2020-02-21",
                "week":"星期五",
                "high":11,
                "low":1,
                "wc_day":"4~5级",
                "wc_night":"<3级",
                "wd_day":"西北风",
                "wd_night":"西北风",
                "text_day":"多云",
                "text_night":"晴",
                "aqi":44
            },
            {
                "date":"2020-02-22",
                "week":"星期六",
                "high":10,
                "low":-2,
                "wc_day":"<3级",
                "wc_night":"<3级",
                "wd_day":"西风",
                "wd_night":"南风",
                "text_day":"晴",
                "text_night":"晴",
                "aqi":39
            },
            {
                "date":"2020-02-23",
                "week":"星期日",
                "high":11,
                "low":0,
                "wc_day":"<3级",
                "wc_night":"<3级",
                "wd_day":"北风",
                "wd_night":"北风",
                "text_day":"晴",
                "text_night":"晴",
                "aqi":65
            },
            {
                "date":"2020-02-24",
                "week":"星期一",
                "high":9,
                "low":-1,
                "wc_day":"<3级",
                "wc_night":"<3级",
                "wd_day":"东风",
                "wd_night":"东北风",
                "text_day":"多云",
                "text_night":"多云",
                "aqi":38
            },
            {
                "date":"2020-02-25",
                "week":"星期二",
                "high":9,
                "low":-3,
                "wc_day":"<3级",
                "wc_night":"<3级",
                "wd_day":"东南风",
                "wd_night":"西南风",
                "text_day":"晴",
                "text_night":"晴",
                "aqi":27
            },
            {
                "date":"2020-02-26",
                "week":"星期三",
                "high":9,
                "low":-3,
                "wc_day":"<3级",
                "wc_night":"<3级",
                "wd_day":"西南风",
                "wd_night":"西南风",
                "text_day":"晴",
                "text_night":"晴",
                "aqi":26
            }
        ],
        "forecast_hours":[
            {
                "text":"晴",
                "temp_fc":14,
                "wind_class":"3~4级",
                "wind_dir":"西南风",
                "rh":15,
                "prec_1h":0,
                "clouds":10,
                "data_time":"2020-04-01 16:00:00"
            },
            {
                "text":"晴",
                "temp_fc":14,
                "wind_class":"3~4级",
                "wind_dir":"西南风",
                "rh":13,
                "prec_1h":0,
                "clouds":10,
                "data_time":"2020-04-01 17:00:00"
            },
            {
                "text":"晴",
                "temp_fc":13,
                "wind_class":"<3级",
                "wind_dir":"西南风",
                "rh":14,
                "prec_1h":0,
                "clouds":10,
                "data_time":"2020-04-01 18:00:00"
            },
            {
                "text":"晴",
                "temp_fc":11,
                "wind_class":"<3级",
                "wind_dir":"西南风",
                "rh":15,
                "prec_1h":0,
                "clouds":10,
                "data_time":"2020-04-01 19:00:00"
            },
            {
                "text":"晴",
                "temp_fc":10,
                "wind_class":"<3级",
                "wind_dir":"西南风",
                "rh":16,
                "prec_1h":0,
                "clouds":10,
                "data_time":"2020-04-01 20:00:00"
            },
            {
                "text":"晴",
                "temp_fc":9,
                "wind_class":"<3级",
                "wind_dir":"西风",
                "rh":18,
                "prec_1h":0,
                "clouds":6,
                "data_time":"2020-04-01 21:00:00"
            },
            {
                "text":"晴",
                "temp_fc":9,
                "wind_class":"<3级",
                "wind_dir":"西风",
                "rh":20,
                "prec_1h":0,
                "clouds":3,
                "data_time":"2020-04-01 22:00:00"
            },
            {
                "text":"晴",
                "temp_fc":8,
                "wind_class":"<3级",
                "wind_dir":"西风",
                "rh":21,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-01 23:00:00"
            },
            {
                "text":"晴",
                "temp_fc":7,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":26,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 00:00:00"
            },
            {
                "text":"晴",
                "temp_fc":6,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":31,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 01:00:00"
            },
            {
                "text":"晴",
                "temp_fc":6,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":36,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 02:00:00"
            },
            {
                "text":"晴",
                "temp_fc":5,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":39,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 03:00:00"
            },
            {
                "text":"晴",
                "temp_fc":4,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":42,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 04:00:00"
            },
            {
                "text":"晴",
                "temp_fc":4,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":45,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 05:00:00"
            },
            {
                "text":"晴",
                "temp_fc":5,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":40,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 06:00:00"
            },
            {
                "text":"晴",
                "temp_fc":7,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":34,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 07:00:00"
            },
            {
                "text":"晴",
                "temp_fc":8,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":29,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 08:00:00"
            },
            {
                "text":"晴",
                "temp_fc":11,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":29,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 09:00:00"
            },
            {
                "text":"晴",
                "temp_fc":13,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":29,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 10:00:00"
            },
            {
                "text":"晴",
                "temp_fc":16,
                "wind_class":"<3级",
                "wind_dir":"西北风",
                "rh":29,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 11:00:00"
            },
            {
                "text":"晴",
                "temp_fc":17,
                "wind_class":"3~4级",
                "wind_dir":"西北风",
                "rh":24,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 12:00:00"
            },
            {
                "text":"晴",
                "temp_fc":18,
                "wind_class":"3~4级",
                "wind_dir":"西北风",
                "rh":19,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 13:00:00"
            },
            {
                "text":"晴",
                "temp_fc":19,
                "wind_class":"3~4级",
                "wind_dir":"西北风",
                "rh":14,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 14:00:00"
            },
            {
                "text":"晴",
                "temp_fc":19,
                "wind_class":"<3级",
                "wind_dir":"西风",
                "rh":17,
                "prec_1h":0,
                "clouds":0,
                "data_time":"2020-04-02 15:00:00"
            }
        ]
    },
    "message":"success"
}

这样,在用户点击按钮时就会向百度地图天气 API 发送请求并处理结果。

注意:以上代码仅为示例,实际项目中可能需要根据实际情况进行修改和调整。

我们更多的是让后端在服务器进行请求,然后把数据返回给前端,这样可以减少跨域和代理的麻烦!

官网文档:https://lbsyun.baidu.com/faq/api?title=webapi/weather/base

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue使用的百度地图的天气查询功能 的相关文章

随机推荐

  • 【TCP/IP】第四章 IP协议

    4 1 即网际协议 TCP IP的心脏是互联网层 这一层主要是由IP Internet Protocol 和ICMP Internet Control Message Protocol 两个协议组成 IP相当于OSI参考模型的第3层 IP
  • 06-TensorFlow 自制数据集

    1 数据文件介绍 数据集下载 https download csdn net download qq 41865229 85254826 训练集60000张数字图片 测试集10000张图片 都是黑底白字的灰度图 每张图有28行28列个像素点
  • c#下各种数据库操作的封装!(支持ACCESS,SQLSERVER,DB2,ORACLE,MYSQL)

    首先定义数据库操作的标准接口IDBAccess 定义接口的基本功能 通过基本的接口设置 完成数据访问的统一抽象 public interface IDBAccess void Init string strServer string str
  • android编译时报错:Error parsing XML: unbound prefix 的错误原因及解决方案

    原因之一 拼写错误 例如 android写成androd之类 原因之二 xmlns没有添加 有的时候 自定了一些view 且新加了一些自定义的命名 那么需要添加声明到根上 如果忘了添加也会报这个错误 xmlns calendar http
  • javacv 人脸检测_使用JavaCV进行手和手指检测

    javacv 人脸检测 这篇文章是Andrew Davison博士发布的有关自然用户界面 NUI 系列的一部分 内容涉及使用JavaCV从网络摄像头视频提要中检测手 注意 本章的所有源代码都可以从http fivedots coe psu
  • 抖音微信消息推送情侣告白浪漫(简易版)

    抖音微信消息推送情侣告白浪漫 简易版 一 首先去微信公众平台用微信扫码登录 登录后会自动生成属于自己的appId appSecret 二 在上述登录后页面中下拉 用一个手机扫码会生成user id 即微信消息推送的接收方 三 点击下方的新增
  • PBR渲染原理

    PBR渲染原理 Tags computer graphics 基于PBR做渲染 需要涉及到很多物理学 几何学 热辐射学概念 本文将逐一介绍每个关键概念 并给出相关重要公式 微平面 microfacets 理论 微观尺度下的任意一个平面 su
  • bootstrap table 表头排序

    在columns 里面加上 sortable true 如下 columns field width 50 align center title sortable true
  • Calendar类介绍 获取对象方式 和方法

    重点 是一个抽象日历类 Calendar 类是一个抽象类 它为特定瞬间与一组诸如 YEAR MONTH DAY OF MONTH HOUR 等 日历字段之间的转换提供了一些方法 并为操作日历字段 例如获得下星期的日期 提供了一些方法 无法直
  • QML实现文件十六进制数据展示

    前言 将一个二进制文件直接拖放到Qt Creator中可以直接查看到以十六进制显示的数据格式 如 要实现一个这样的效果 还是要花不少时间的 在网上找了挺多示例 其中一个开源代码效果不错 参考这里 但是是在QWidget中实现的 通过继承QA
  • 小知识:随机生成26个字母中(一个或多个)的字母

    小知识 就直接上代码了 不多说 String str for int i 0 i lt 1 i str str char Math random 26 A 特别注意的2点 1 A 是随机生成大写的26个随机字母 2 a 是随机生成小写的26
  • LangChain之Output parsers

    LangChain之Output parsers Output parsers将LLM输出的文本 转换为structured data CommaSeparatedListOutputParser 解析结果为List 提示词如下 def g
  • 用python怎样实现滑动验证码呢?

    手把手带大家实现Bilibili模拟登陆 滑动验证码 项目 来肝 1 为什么要处理滑动验证码 在很多时候我们在做模拟登陆的时候会遇到滑动验证码 这个时候就必须要处理 2 目标网站 bilibili视频网站的滑动验证码 外链图片转存失败 源站
  • 头文件 sting.h 和 cstring 还有 string 区别

  • 显示器颜色不正常的原因是什么

    显示器是电脑的重要部件之一 显示器颜色不正常 会对我们看电脑造成很大影响 也很容易感觉到眼睛疲劳 显示器颜色不正常是怎么回事 应该怎么处理呢 下面为大家一一道来 显示器颜色不正常的根源 显示器是属于电脑的I O设备 即输入输出设备 它可以分
  • echarts之饼图制作+标示线

    1 安装echarts组件 npm install echarts s 2 在main js中全局引入以及挂载 import echarts from echarts 引入 Vue prototype echarts echarts 挂载
  • 对于Scanner类中next()和nextLine()的区别

    对于键盘录入对象Scanner对象的两个录入字符串方法的区别 Scanner sc new Scanner System in sc next 和 sc nextLine 的区别 next 对于录入的字符串碰到空格就会停止录入 nextLi
  • CentOS7 yum源修改为阿里,配置阿里epel源

    一 概念 区分 yum源 什么是yum源 yum是一个在CentOS RedHat和Fedora操作系统中使用的Shell前端软件包管理器 yum主要管理基于rpm的软件包 Centos先将发布的软件放置到YUM服务器内 然后分析这些软件的
  • 自定义分页标签

    原文地址 http blog csdn net wjt1989wjt article details 4720350 步骤一 编写分页标签处理类 分页标签处理类 public class PagerTag extends TagSuppor
  • vue使用的百度地图的天气查询功能

    首先需要在 Vue js 项目中安装百度地图 JavaScript API SDK 并获取相应的密钥 ak 然后 可以按照以下步骤使用百度地图的天气查询功能并使用 Axios 进行请求 官网文档 https lbsyun baidu com