使用FME进行地理编码转换
此次数据为上海杨浦区各街道社区受理服务中心地址信息。
地图API接口可以任意选择,这里使用百度地图API接口。
1.地理编码:
将地址信息映射为地理坐标的过程称之为地理编码。
使用FME进行地理编码操作过程比较简单,首先构建访问的url,然后对返回的信息进行解析操作,对属性进行整理后输出即可。下面是FME操作的整体流程图:
- 第一步:添加读模块:
需要注意的是,有时候excel中会有一行表头用于标注一些信息,例如下面这样:
这时,直接读取也会把第一行读进来,但是这不是我们需要的,可以通过点击读模块
对话框中的参数
按钮,在弹出的对话框中的sheet to read
栏中的Field Names Row(字段名称行)
中设置为2,也就是将第一行跳过。
- 第二步:添加HTTPCaller转换器:
该转换器用于构建请求的URL。
在HTTPCaller Parameters
对话框中设置请求的url以及方法,并根据API文档设置相应参数,返回后的信息会储存在_response_body
中。
- 第三步:添加JSONExtractor转换器:
该转换器用于从格式化文本中提取要素属性,此处为JSON格式。
在JSONExtractor Parameters
对话框中设置要解析的文档以及提取查询语句。
- 第四步:添加AttributeManager转换器:
该转换器用于对属性值进行整理。
在AttributeManager Parameters
对话框中的属性动作栏中选择要删除的属性值。
- 第五步:添加写模块:
将得到的数据保存为新的excel文件,运行得到结果。
需要注意的是,百度地图API返回的坐标值默认为bd09ll(百度经纬度坐标)。
2.逆地理编码:
将地理坐标转换为地址信息的过程称之为逆地理编码。
使用FME进行逆地理编码操作过程与地理编码类似,这里就不做详细介绍。下面是FME操作的整体流程图:
-
第一步:添加读模块:
-
第二步:添加HTTPCaller转换器:
在构建url时需要注意的是,百度地图API逆地理编码要求输入的是一对坐标值(lat<纬度>,lng<经度>),并且要求纬度在前,经度在后。
所以此处设置参数的时候需要使用文本编辑器
。
-
第三步:添加JSONExtractor转换器:
-
第四步:添加AttributeManager转换器:
-
第五步:添加写模块: