一、应用需求
地址数据非常重要,powerbi在处理泛化地址(国家、城市)数据时,直接用可视化地图即可,但这种方法有局限性:例如对于一个详细到XX市XX区XX路装的数据时,统计的数值往往不准确。此时就需要调用外部API。
如下图,同一份数据,在调用API时,可以完全统计出5个样本。

二、操作
1.注册并获取key
打开高德开放平台,https://lbs.amap.com/,注册并获取key,找到web 服务API,里面有各类API文档,以地理编码为例,处理本次订单数据。


2.查阅服务示例
就本次操作而言,只用更改address,key。

3.powerbi中调用这个示例
打开powerbi——获取数据——自网页,复制并修改URL中的链接。https://restapi.amap.com/v3/geocode/geo?代表网页地址;address=北京市朝阳区阜通东大街6号,代表第一个参数;key=20e1d8d9,代表第二个参数(这里key换成刚才注册生成的)
总而言之,URL中的地址示例如下:
https://restapi.amap.com/v3/geocode/geo?address=北京市朝阳区阜通东大街6号&key=20e1d8d9

4.power quary 中查看
生成一条记录,在geocodes这个list中,嵌套一个列表(= 源[geocodes]),列表里面(= 源[geocodes]{0})的location是所需要的经纬度信息。



5.将上条记录改成经纬度调用函数
生成的记录不能直接用,= 源[geocodes]{0}[lacation]才是目标值。
在理解这条记录的基础上,将它改成函数。打开高级编译器。

在此基础上进行修改。修改前后如下:


修改完成点击确定,输入新参数测试这个函数的可用性。

有正确的经纬度返回值。修改函数名为trans。

6.导入自己的订单表,调用上面的函数trans
在地址这一列,添加自定义列,引用刚才的函数去将格式化地址转换成经纬度。
自定义公示=trans([地址]),此时获得的是经纬度,进行分列。

7.回到powerpivot视图调用地图即可。最终结果如下。

网友评论