在昨天的推文中,我们介绍了李春涛教授带领爬虫俱乐部成员新发布的chinagcode命令,可以从中文地址中提取经纬度。今天我们就献上第二份大礼,和chinagcode打包在一起的chinaaddress命令,这个命令与昨天介绍的chinagcode命令相反,是从经纬度提取出对应的中文地址。记得在之前的公众号数据处理援助中心,我们介绍用谷歌地图提取中文地址经纬度的那篇推文下面有朋友留言,希望我们能够研究出如何用经纬度来提取地址,这同样可以通过百度地图API来实现。
chinaaddress命令的help文件和chinagcode命令是在一起的,大家安装好这个命令后可以通过help chinagcode或者help chinaaddress,都可以进入到两个命令的help文件中。在使用这个命令前,同样需要大家去百度地图开放平台申请一个百度密钥,申请的方式在昨天的推文中已经介绍过了。使用这个命令时,和昨天介绍的chinagcode命令一样,需要我们用百度密钥来定义baidukey这个选项,没有定义这个选项或者定义了错误的百度密钥,都会导致无法提取出所需要的内容。在这个命令中,我们还必须要定义的就是经度和纬度对应的变量名。而我们提取出来的地址内容包括省、市、区、街道、完整地址和百度地图的sematic description。我们可以根据对应的选项来修改提取到的地址的变量名。例如,我们用昨天提取到的中南财经政法大学和北京大学的经纬度来提取地址。
chinaaddress, baidukey(输入你的百度密钥) long(longitude) lat(latitude)
list
昨天的推文发出后,一些朋友提到了百度地图本身经纬度加密,存在偏移的情况,根据我们用chinaaddress得到的结果,存在的偏移应当在可接受的范围。这也是这个命令存在的一些不足,如果本身百度地图API的结果是有偏差的,我们获得的结果也将是有偏差的。此外,昨天的推文中提到了定义地址的方式,根据baidudituAPI返回的地址结果,最佳定义地址的方式应该是xx省xx市xx区xx路xx号,这样可以最大可能的避免地址描述方面问题导致的误差。然而,这在一些情况下也是很难办到的。
感谢大家一直以来对我们团队的支持,我们会在今后继续用我们的技术为大家提供帮助。
我们团队原来的微信公众号是“数据处理援助中心”,现在正式搬家到“爬虫俱乐部”,欢迎关注。新的公众号开始,我们推出有问必答栏目,对您提出的问题,我们会尽力回答,并通过推文的形式进行发布。我们也欢迎各位粉丝向公众号投稿。
(编辑 @付彩月)
长按二维码关注公众号
微信扫一扫
关注该公众号