使用高德api获取天气情况

  • 效果如下,图标是自己根据天气名称匹配的
    在这里插入图片描述

一、登录高德开放平台

https://lbs.amap.com/

二、找到天气服务

在这里插入图片描述

三、说明

天气查询是一个简单的 HTTP 接口,根据用户输入的 adcode 或者 区域名称,查询目标区域当前/未来的天气情况。

四、步骤说明

在这里插入图片描述

4.1. 申请Web服务的key

https://console.amap.com/dev/key/app

4.1.1. 新建应用

在这里插入图片描述

在这里插入图片描述

4.1.2. 在应用中添加key

在这里插入图片描述

  • 这里一定要选择Web服务
    在这里插入图片描述

4.1.3. 保存key

在这里插入图片描述

4.2. 天气查询

4.2.1. 天气查询API服务说明

URL请求方式
https://restapi.amap.com/v3/weather/weatherInfo?parametersGET

parameters参数说明 https://lbs.amap.com/api/webservice/guide/api/weatherinfo

在这里插入图片描述
返回结果参数说明 https://lbs.amap.com/api/webservice/guide/api/weatherinfo

4.2.2. city参数说明

  • 可以是查询的城市的名称,如:南京
  • 也可以是城市的 adcode,adcode 信息可参考 城市编码表【下面着重讲这个】

4.2.3. 如何根据经纬度获取城市的adcode

/**
 * 如何根据经纬度获取城市的adcode
 */
getAdcode() {
  return new Promise(async (resolve, reject) => {
    let locationX = 123.456;
    let locationY = 123.456;
    try {
      const res = await axios.get("https://restapi.amap.com/v3/geocode/regeo", {
        params: {
          key:'你的高德key',
          location: `${locationX},${locationY}`,
        },
      });
      const httpStatus = res?.status;
      const data = res?.data;
      if (httpStatus === 200 && data?.status == "1") {
        const adcode = data?.regeocode?.addressComponent?.adcode;
        if (!adcode) return reject("获取区域编码失败");
        resolve(adcode);
      } else {
        reject(data?.info || "获取区域编码失败");
      }
    } catch (error) {
      reject(error);
    }
  });
},

4.2.4. 根据获取的adcode查询天气

/**
 * 天气查询
 */
getWeather() {
  return new Promise(async (resolve, reject) => {
    try {
      let adcode = await this.getAdcode();
      if (!adcode) return reject("city为空");
      const res = await axios.get(getWeatherUrl, {
        params: {
          key,
          city: adcode,
          extensions: "all", // base: 实时天气, all: 预报天气
          output: "JSON",
        },
      });
      const httpStatus = res?.status;
      const data = res?.data;
      if (httpStatus === 200 && data?.status == "1") {
        const forecasts = data?.forecasts || [];
        if (!forecasts) return reject("获取天气预报失败");
        resolve(forecasts?.[0] || {});
      } else {
        reject(data?.info || "获取天气预报失败");
      }
    } catch (error) {
      reject(error);
    }
  });
},
### 使用高德开放平台API获取天气数据 为了利用高德开放平台API获取天气数据,开发者需遵循一系列特定流程以确保顺利调用接口并获得所需信息。此过程涉及注册账号、创建应用以及申请相应的API服务。 #### 注册与配置 访问高德开放平台网站,并完成账户注册[^1]。登录之后,在个人中心内新建应用程序,这一步骤对于后续操作至关重要,因为每一个请求都需要通过唯一的应用程序密钥(Key)来进行身份验证。 #### 获取API Key 成功创建应用后,系统会自动生成一个专属的API Key。这个密钥将在发起HTTP GET请求时作为参数传递给服务器端口,用于识别合法的身份来源[^2]。 #### 构建请求URL 构建正确的URL是实现有效通信的关键部分之一。针对天气查询功能而言,完整的请求地址应包含基础路径加上必要的查询字符串参数: - 基础路径:`https://restapi.amap.com/v3/weather/weatherInfo?` - 参数列表: - `key`: 用户自己的API key - `city`: 要查询的城市名称或区号 - `extensions`: 扩展选项,默认为`base`(基本),也可以设置为`all`(全部) 例如,要查询北京市的基础天气状况,则可以构造如下链接: ```plaintext https://restapi.amap.com/v3/weather/weatherInfo?key=YOUR_API_KEY&city=北京&extensions=base ``` 其中`YOUR_API_KEY`应当替换为自己实际拥有的API密钥值[^3]。 #### 解析返回JSON对象 当发送上述GET请求至指定网址后,将会接收到一段结构化的JSON格式响应体。该响应包含了关于所选城市的实时气象条件以及其他相关信息字段。解析这些数据可以帮助进一步处理和展示给最终用户。 ```json { "status": "1", "count": "1", "info": "OK", "infocode": "10000", "lives": [ { "province": "", "city": "", "adcode": "", "weather": "", "temperature": "", "winddirection": "", "windpower": "", "humidity": "", "reporttime": "" } ] } ``` 以上即是如何运用高德开放平台所提供的API接口来检索目标地区的即时天气概况的大致步骤说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值