历史版本3 :将经纬度数据转换为中文地址 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

2. 操作步骤编辑

2.1 场景模拟

示例数据:经纬度信息.xls

示例数据如下图所示:

1692586029608337.png

「经纬度信息」表中保存着高德坐标系的经纬度数据,希望可以转换为对应的中文地址(国家、省份、城市、区县、街道等),将转换后的数据保存到数据库中。如下图所示:

2.2 方案说明


2.3 申请百度 API 密钥

1)访问http://lbsyun.baidu.com/apiconsole/key,登录百度账号并完成实名认证。

2)点击「创建应用」按钮,自定义「应用名称」,「应用类型」选择服务器端,「请求校验方式」选择IP白名单校验,IP白名单处输入0.0.0.0/0,点击「提交」按钮。

提交后,可看到密钥信息。如下图所示:

点击查看具体步骤
46.png

2.4 取出经纬度数据并输出为参数

1)新建定时任务,拖入「参数赋值」节点。

2)取出经纬度数据,并将经度和纬度输出为参数。如下图所示:

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

48.png

2.5 设置循环容器

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

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

1692587152494816.png

2.6 将原始坐标系转换为百度坐标系

「经纬度信息」表中保存着高德坐标系的经纬度数据,需要使用百度坐标系的 API 接口,转换为百度坐标系。

2.6.1 设置 API 输入算子

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

2)「API输入」算子中,请求URL说明如下:

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

API 接口说明:坐标转换

请求参数
含义使用说明
coords需转换的源坐标,多组坐标以“;”分隔
(经度,纬度)
${jingdu},${weidu}----注意精度在前,纬度在后
ak开发者密钥,申请AK本文 2.3 节中申请的密钥
from

源坐标类型:

3:火星坐标(gcj02),即高德地图、腾讯地图和MapABC等地图使用的坐标

本文「经纬度信息」表中保存着高德坐标系的经纬度数据,所以参数值写3
to

目标坐标类型:

5:百度地图采用的经纬度坐标(bd09ll)

由于需要转换成百度地图采用的经纬度坐标,所以参数值写 5 

所以,请求URL为:https://api.map.baidu.com/geoconv/v1/?coords=${jingdu},${weidu}&ak=vUyAM6tIqG4c2FJ3dtNxW3GMt9F62Qfn&from=3&to=5

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

1692588167904907.png

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

1692588230730141.png

result 字段为 JSON 格式数据,需进行解析得到百度坐标系的经纬度数据(即经度和纬度数据单独为一列,便于后续转化为对应的中文地址)。

2.6.2 解析经纬度数据

1)拖入「JSON解析」算子,解析 result 字段。不勾选「解析后保留所有上游输出字段」按钮,只保留解析后的字段信息。如下图所示:

1692588648592081.png

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

1692588715808510.png

2.6.3 将经纬度数据作为参数输出

将解析后的经纬度数据,作为参数输出,便于后续转化为中文地址。

1)拖入「参数输出」节点,将 x 值输出为参数 jingdu1 ,y 值输出为参数 weidu1。如下图所示:

1692589113782358.png

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

2.7 将百度坐标系经纬度转换成中文

2.6 节已将高德坐标系经纬度数据转换为百度坐标系经纬度数据,并作为参数输出,本节将百度坐标系经纬度数据转换为中文。

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

2)「API输入」算子中,请求URL说明如下:

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

API 接口说明:逆地理编码

请求参数
含义使用说明
location根据经纬度坐标获取地址${weidu1},${jingdu1}----注意纬度在前,精度在后
ak用户申请注册的key,自v2开始参数修改为“ak”,之前版本参数为“key” 申请ak本文 2.3 节中申请的密钥
output输出格式为json或者xml本文示例输出为 json 格式
coordtype坐标的类型,目前支持的坐标类型包括:bd09ll(百度经纬度坐标)、bd09mc(百度米制坐标)、gcj02ll(国测局经纬度坐标,仅限中国)、wgs84ll( GPS经纬度) 坐标系说明bd09ll(百度经纬度坐标)

所以,请求URL为:

https://api.map.baidu.com/reverse_geocoding/v3/?location=${weidu1},${jindu1}&ak=vUyAM6tIqG4c2FJ3dtNxW3GMt9F62Qfn&output=json&coordtype=bd09ll

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