今天学习了一个新技能,分享一个。
问题:客户发给我的数据有大量的不明确的地理位置,没有经纬度坐标,但是又需要地图展示。如何为批量地点增加坐标?
工具:Tableau Prep;百度。
一、百度解析
在百度地图有一个公开的解析地点服务,可以批量获得经纬度坐标,地址如下:
http://lbsyun.baidu.com/jsdemo.htm#i7_3
按照下图的指引,可以输入自己的地址代替,然后 运行——解析即可获得。
二、如何批量获得标准化的地理位置
百度没有那么聪明,所以我们要在自己的地理位置中尽可能加入明确的信息,比如城市和区的名字。
客户给我的原始数据大致如下:
很明显,这个地址会让人抓狂,有不必要的空格,没有明确的归属辖区,这样导入很容易出错。因此我们要从其他字段中加入“城市”和“区域”的字段;如果在desktop中,可以使用计算字段完成:
这样可以保证解析的地址即便不准确,也不会偏离太多。
但是,考虑到获得经纬度还需要和之前的数据做匹配,Desktop显然不是最好的方法;因此我使用了Prep。我现在原来的流程中新增了一个分支,排除null值,排除空格,用计算字段把地址补充完成,按照要求加入两侧的引号和逗号,然后导出来csv文件。
之后打开csv,把第一列复制到上面的百度地址对应的代码中,删除最后一列的逗号,点击运行–解析,等待……
漫长的等待,我把博客写到这里,百度才解析到2000多行,辛苦它了;看样子至少还要四十分钟才能完成。
三、反向处理
获得经纬度容易,重新接上去可不简单,幸好我们有Tableau Prep。使用连接就可以轻松完成。
1、把百度返回的数据提取地址、经度和纬度,分别命名;
2、使用完整地址和主数据做连接,从而把经纬度追加到数据后面;
3、完成。
之后就可以在desktop中生成地图了。
thanks 佳杰·志伟;戴姆勒·冰冰
Sep 2, 2019
网页不支持复制,楼主
赞赞
换浏览器
赞赞
跑6670个,可能要1年吧,免费测试量好像是30万条
赞赞