反馈已提交

网络繁忙

使用高德接口获取城市天气数据

  • 文档创建者:Wendy123456
  • 历史版本:6
  • 最近更新:Wendy123456 于 2023-08-29
  • 1. 概述

    1.1 应用场景

    FR 日报表中需要填写对应城市的天气信息,包括日期、天气、最高温度、最低温度等,目前只能通过城市名人工查询后获得这些信息。

    FineDataLink 可简化上述操作流程:根据数据库表存储的城市数据,调用高德 API 接口,获取对应天气数据并存储到数据库,FR 报表直接取数即可。

    1.2 实现思路

    1.3 任务展示

    FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 「使用高德接口获取城市天气数据」。

    26.png

    2. 操作步骤

    2.1 场景模拟

    示例数据:city.xls

    示例数据如下图所示:

    1693225409963576.png

    city 表中存储着城市数据,希望能获取对应城市当天的天气数据。如下图所示:

    1693279342455688.png

    2.2 方案说明

    1)添加参数,值为当天日期。

    2)通过「参数赋值」节点将城市数据取出,并作为参数输出,使用 地理/逆地理编码接口 接口,根据城市名获得对应的城市编码。

    3)使用 天气查询 接口,根据城市编码获取对应城市天气数据。

    4)使用数据过滤算子过滤出当天天气数据。

    5)使用「循环容器」节点,遍历所有参数执行上述过程。

    2.3 申请高德 Key

    1)访问 高德控制台 (amap.com),点击「应用管理>我的应用>创建新应用」,应用名称可自定义,应用类型选择「天气」。如下图所示:

    4.png

    2)点击右上角的「添加Key」,Key 名称可自定义,服务平台选择「Web服务」,同意下方的协议,提交。

    7.png

    3)下方的 Key 值为后续调用 API 时需要用到的 key 值,右侧「查看配额」可查看对应 api 的使用次数限制。高德天气 api 限制每日调用上限为 300000 。

    8.png

    2.4 设置参数

    新建定时任务,参数设置中添加参数 todaytime ,值为 yyyy-mm-dd,代表取 ${cyctime} (任务执行时间) yyyy-mm-dd 格式的值。便于后续步骤中,通过该参数过滤出今天的天气数据。如下图所示:

    注:${cyctime} 为定时任务在 调度配置 中设置的每次运行的时间节点,格式为 yyyy-mm-dd hh:mm:ss

    1693275661895530.png

    2.5 获取城市数据并作为参数输出

    拖入「参数赋值」节点,取出城市数据,并将城市数据输出为参数。如下图所示:

    参数默认值只是为了下游节点提前预览设置的,实际运行时不会用到这个默认值。

    9.png

    2.6 设置循环容器

    使用「循环容器」节点,将「参数赋值」节点的输出结果赋值给「循环容器」节点后,一次次循环来遍历赋值节点的输出结果。

    循环方式选择「遍历循环」,勾选 city_name 参数,需要将该参数传递给「循环容器」中的节点。如下图所示:

    1693227514161207.png

    2.7 将城市数据转化为城市编码

    city 表中保存着城市数据,需要使用 地理/逆地理编码接口 将详细的结构化地址转换为城市编码。

    2.7.1 设置 API 输入算子

    1)将「数据转换」节点拖入「循环容器」中,进入「数据转换」节点,拖入「API输入」算子。

    2)「API输入」算子中:

    API 接口地址:https://restapi.amap.com/v3/geocode/geo,API 接口说明请参见:地理/逆地理编码接口

    需要用到的请求参数说明:

    请求参数
    含义使用说明
    address结构化地址信息为本文 2.5 节获取的 city_name 参数
    output

    返回数据格式类型

    可选输入内容包括:JSON,XML。设置 JSON 返回结果数据将会以JSON结构构成;如果设置 XML 返回结果数据将以 XML 结构构成

    本文示例选择 json
    key用户在高德地图官网申请Web服务API类型Key本文 2.3 节获取的值

    所以,请求URL为:https://restapi.amap.com/v3/geocode/geo?address=${city_name}&output=json&key=6aa960b7617f6b2ef00c43580f98c7db

    「API输入」算子设置界面如下图所示:

    1693228327875927.png

    点击「数据预览」,如下图所示:

    1693228377637682.png

    需要使用「JSON解析」算子解析数据。

    2.7.2 解析数据

    1)拖入「JSON解析」算子,源字段为 default 。不勾选「解析后保留所有上游输出字段」按钮,只保留解析后的字段信息;JSON 节点选择 adcode、district 字段。如下图所示:

    13.png

    2)点击「数据预览」,解析后数据如下图所示:

    1693228690544227.png

    2.7.3 将 adcode 字段作为参数输出

    将 adcode 字段(城市编码)作为参数输出,便于后续获得该城市天气数据。

    1)拖入「参数输出」节点, 将 adcode 字段输出为参数 city_adcode 。如下图所示:

    1693228897612011.png

    2)点击右上角「保存」按钮。

    2.8 获取城市天气数据

    本节根据 adcode 字段(城市编码)数据获得该城市的天气数据。

    2.8.1 设置 API 输入算子

    1)将「数据转换」节点拖入「循环容器」中,进入「数据转换」节点,拖入「API输入」算子。

    2)「API输入」算子中:

    API 接口地址:https://restapi.amap.com/v3/weather/weatherInfo,API 接口说明请参见:天气查询

    需要用到的请求参数说明:

    请求参数
    含义使用说明
    city

    城市编码

    输入城市的adcode,adcode信息可参考城市编码表

    本文 2.7.3 节获取的 city_adcode 参数
    extensions

    气象类型

    可选值:base/all

    base:返回实况天气

    all:返回预报天气

    本节选择 all
    key用户在高德地图官网申请web服务API类型KEY本文 2.3 节获取的值

    所以,请求URL为:

    https://restapi.amap.com/v3/weather/weatherInfo?key=6aa960b7617f6b2ef00c43580f98c7db&city=${city_adcode}&extensions=all

    「API输入」算子中,取消勾选「将解析后的JSON数据展开为二维表」按钮,不使用二维表形式展示数据,使用 json 格式展示数据,后续使用「JSON 解析」节点统一对数据进行解析。

    1693229437848144.png

    2.8.2 解析数据

    1)拖入「JSON解析」算子,对 2.8.1 节的数据进行解析。不勾选「解析后保留所有上游输出字段」按钮,只保留解析后的字段信息。

    选择解析字段:province、reporttime、city、casts。如下图所示:


    1693273982378847.png

    2)点击「数据预览」,可看到 casts 字段为 JSON 格式数据,需要进一步解析。如下图所示:

    1693274108300317.png

    3)拖入「JSON解析」算子,解析 casts 字段。勾选「解析后保留所有上游输出字段」按钮,若不勾选该按钮,将只保留 casts 字段解析后的数据;选择解析字段:date、dayweather、nightweather、daytemp、nighttemp、daywind、nightwind、daypower、nightpower。如下图所示:

    1693274551796021.png

    4)点击「数据预览」,如下图所示:

    1693274940974147.png

    2.8.3 删除不必要字段、修改字段类型

    拖入「字段设置」算子,修改 date 字段类型为 yyyy-MM-dd ,删除 casts 字段。如下图所示:

    1693275927872542.png

    2.8.4 过滤出今天天气数据

    添加「数据过滤」算子,设置 date 字段的值等于 2.4 节设置的参数的值,过滤出今天天气数据。如下图所示:

    23.png

    2.8.5 数据输出

    1)添加「DB表输出」算子,输出数据。如下图所示:

    1693276368910673.png

    2)点击右上角「保存」按钮。

    2.9 效果查看

    任务运行成功后,weatherInfo 表数据如下图所示:

    1693276517615306.png




    附件列表


    主题: 数据开发
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持