Power BI批量获取地址经纬度

需求描述

确定1000+门店在其城区中轴线以左还是以右,并返回Excel

原始数据示例

门店名 门店地址
牛局炭火烤肉(远大购物中心店) 秀英区长滨四路7号远大购物中心北馆5F
牛局炭火烤肉(日月广场店) 琼山区国兴大道8号日月广场西区西6天蝎座4楼免税店楼上
牛局炭火烤肉(友谊阳光城店) 龙华区金龙路金贸友谊阳光城6AF
牛局炭火烤肉(上邦百汇城店) 龙华区上邦百汇城2号楼3层

实现路径分析

第一种方法: 导入Power BI的地图,靠在地图上画下中轴线然后导出左右的地点。
第二种方法: 使用高德地图API,在Power Query里新建查询,得到每个门店的具体经纬度,而后查询海口市中轴线的经度,就可以在Excel里简单区分开了。

第二种方法

①获取高德地图的API,在高德地图API网站里注册登录,个人开发者可以直接用支付宝实名登录。然后在控制台→应用管理→我的应用→创建新应用,而后依照自己喜好命名与选择用途即可。在那之后,你会得到一串key,比较关键。
②而后打开Power BI加载数据,进入编辑转换(Power Query)
③在该页面新建查询,步骤如下:
先点开新建源。

然后点击空查询,会得到这个界面,是一个空白的页面,你可以先尝试给“查询1”改个好听的名字。
建议更名为这个查询的作用然后右键查询1选择进入到高级编辑器,输入如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
let
源 = (GaoDe_Map_Key as text, GaoDe_Map_Address as any, GaoDe_Map_ScopeCity as any) => let
源 = Json.Document(Web.Contents("https://restapi.amap.com/v3/geocode/geo?key=" & GaoDe_Map_Key & "&address=" & GaoDe_Map_Address & "&city=" & GaoDe_Map_ScopeCity )),
转换为表 = Table.FromRecords({源}),
#"展开的“geocodes”" = Table.ExpandListColumn(转换为表, "geocodes"),
#"展开的“geocodes”1" = Table.ExpandRecordColumn(#"展开的“geocodes”", "geocodes", {"formatted_address", "country", "province", "citycode", "city", "district", "township", "neighborhood", "building", "adcode", "street", "number", "location", "level"}, {"formatted_address", "country", "province", "citycode", "city", "district", "township", "neighborhood", "building", "adcode", "street", "number", "location", "level"}),
删除的其他列 = Table.SelectColumns(#"展开的“geocodes”1",{"formatted_address", "country", "province", "citycode", "city", "district", "adcode", "location", "level"}),
重命名的列 = Table.RenameColumns(删除的其他列,{{"formatted_address", "匹配到地址"}, {"country", "国家"}, {"province", "省份"}, {"citycode", "城市代码"}, {"city", "城市"}, {"district", "区县"}, {"adcode", "地址代码"}, {"location", "经纬度"}, {"level", "匹配级别"}}),
按分隔符拆分列 = Table.SplitColumn(重命名的列, "经纬度", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"经纬度.经度", "经纬度.纬度" }),
更改的类型 = Table.TransformColumnTypes(按分隔符拆分列,{{"城市代码", type text}, {"地址代码", type text}, {"经纬度.经度", type number}, {"经纬度.纬度", type number}})
in
更改的类型
in

复制代码记得全选,然后替换掉
点击完成后,生成了查询如下:
这一步是让查询生效,所以按图例随便输一个你想查询的地址即可点击调用,成功获得了其具体信息:
OK。到这一步说明一切都是顺利,那么我们将该查询运用到我们的目标表格中,点击 “添加列”即用新查询生成新列

然后调用自定义函数

如图所示,注意要按提示来之后便得到了新的一列如图

点击红框内的按钮,确定展开
也可以把不需要的数据反选

得到了详细具体的经纬度以及区县地址
之后就可以点击此处,选择复制整个表,然后粘贴到Excel中进行处理了!

结尾:

1.本文中的代码部分转载自程序员客栈,作者为PowerBI战友联盟,感谢。

2.转载本文无需征得本人同意,请附上原址即可,感谢。