用户数据库存储了经纬度数据,希望转换成对应的中文地址(国家、省份、城市、区县、街道等),最后将转换后的数据保存到数据库中。
可以调用高德或百度地址转换的 API 接口实现。
FineDataLink 中的数据处理过程,详情参见:https://demo.finedatalink.com/ 中定时任务:「经纬度转中文地址」
示例数据:经纬度信息.xls
示例数据如下图所示:
「经纬度信息」表中保存着高德坐标系的经纬度数据,想获取对应的百度地图中文地址(国家、省份、城市、区县、街道等),将转换后的数据保存到数据库中。如下图所示:
调用百度地址转换的 API 接口实现:
坐标系转换接口:坐标转换
逆向地理转换接口:逆地理编码
1)通过「参数赋值」节点将经度和纬度数据作为参数输出,使用 坐标转换 接口,将高德坐标系的经纬度数据转换为百度坐标系的经纬度数据。
2)使用 逆地理编码 接口,将百度坐标系经纬度数据转换为中文。
3)使用「循环容器」节点,遍历所有参数执行上述过程。
1)访问http://lbsyun.baidu.com/apiconsole/key,登录百度账号并完成实名认证。
2)点击「创建应用」按钮,自定义「应用名称」,「应用类型」选择服务器端,「请求校验方式」选择IP白名单校验,IP白名单处输入0.0.0.0/0,点击「提交」按钮。
提交后,可看到密钥信息。如下图所示:
1)新建定时任务,拖入「参数赋值」节点。
2)取出经纬度数据,并将经度和纬度输出为参数。如下图所示:
参数默认值只是为了下游节点提前预览设置的,实际运行时不会用到这个默认值。
使用「循环容器」节点,将「参数赋值」节点的输出结果赋值给「循环容器」节点后,一次次循环来遍历赋值节点的输出结果。
循环方式选择「遍历循环」,勾选 jingdu 和 weidu 两个参数,需要将这两个参数传递给「循环容器」中的节点。如下图所示:
「经纬度信息」表中保存着高德坐标系的经纬度数据,需要使用百度坐标系的 API 接口,转换为百度坐标系。
1)将「数据转换」节点拖入「循环容器」中,进入「数据转换」节点,拖入「API输入」算子。
2)「API输入」算子中,请求URL说明如下:
需要用到的请求参数说明:
API 接口说明:坐标转换
源坐标类型:
3:火星坐标(gcj02),即高德地图、腾讯地图和MapABC等地图使用的坐标
目标坐标类型:
5:百度地图采用的经纬度坐标(bd09ll)
所以,请求URL为:https://api.map.baidu.com/geoconv/v1/?coords=${jingdu},${weidu}&ak=vUyAM6tIqG4c2FJ3dtNxW3GMt9F62Qfn&from=3&to=5
「API输入」算子设置界面如下图所示:
点击「数据预览」,如下图所示:
result 字段为 JSON 格式数据,需进行解析得到百度坐标系的经纬度数据(即经度和纬度数据单独为一列,便于后续转化为对应的中文地址)。
1)拖入「JSON解析」算子,解析 result 字段。不勾选「解析后保留所有上游输出字段」按钮,只保留解析后的字段信息。如下图所示:
2)点击「数据预览」,解析后数据如下图所示:
将解析后的经纬度数据,作为参数输出,便于后续转化为中文地址。
1)拖入「参数输出」节点,将 x 值输出为参数 jingdu1 ,y 值输出为参数 weidu1。如下图所示:
2)点击右上角「保存」按钮。
2.6 节已将高德坐标系经纬度数据转换为百度坐标系经纬度数据,并作为参数输出,本节将百度坐标系经纬度数据转换为中文。
API 接口说明:逆地理编码
所以,请求URL为:
https://api.map.baidu.com/reverse_geocoding/v3/?location=${weidu1},${jingdu1}&ak=vUyAM6tIqG4c2FJ3dtNxW3GMt9F62Qfn&output=json&coordtype=bd09ll
「API输入」算子中,取消勾选「将解析后的JSON数据展开为二维表」按钮,不使用二维表形式展示数据,使用 json 格式展示数据,后续使用「JSON 解析」节点统一对数据进行解析。
1)拖入「JSON解析」算子,对 2.7.1 节的数据进行解析。不勾选「解析后保留所有上游输出字段」按钮,只保留解析后的字段信息。
选择解析字段:lng、lat、country、province、city、district、town、street、street_number,需注意,勾选节点时,建议勾选该节点的父节点。具体勾选方式请参见下图:
2)点击「数据预览」,如下图所示:
1)拖入「DB表输出」算子,将数据输出。如下图所示:
2)点击「字段映射」,删除 lng、lat 字段。
3)点击右上角「保存」按钮。
1)点击「保存并运行」按钮,任务运行成功后,如下图所示:
2)数据库表信息如下图所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
Submitted successfully
Network busy