使用R调用百度地图API批量获取地点经纬度坐标

2020-4-4 更新

挺多人反馈按照文档操作后无法获拿到坐标数据,貌似是百度地图API的AK码中间经历过升级,而且github上badbye作者写的那个baidumap库也好久没有更新过了,换用腾讯地图的开放平台又做一篇攻略,纯使用Python实现,更简单好用,欢迎围观:

https://lpwmm.blog.csdn.net/article/details/105313017

 

2018-9-30更新视频教程

B站:https://www.bilibili.com/video/av32740755/


上一篇里面说了一下用百度地图的拾取坐标系统可以在web里面鼠标点击获取坐标,配合按键精灵去模拟手动搜索点击复制的方法批量获取坐标,效率其实很低的,不过凑活先满足了坐标比较少的情况下的需求,但是对于大量位置信息想要转换成经纬度坐标,还是得上高效率的方法了,研究了一下用R+百度地图的扩展包,很方便的就可以对大量的地理位置名称进行坐标解析,记录一下过程:

首先还是得先搞到个百度地图开发者的AK码,否则没法调用百度地图API的,这里就不展开讲了

推荐直接下载安装RStudio,开源的R开发IDE环境,比官方的R-GUI界面友好很多,然后在RStudio里面设置一下安装包的源地址:

我用的是兰州大学的镜像源,速度就挺快了的,切换好源以后开始安装需要的扩展包,首先要装的是devtools

这里输入包名的时候还会有联想补全,相当好用的。装好devtools后在控制台里面引用一下,就可以调用install_github的命令了

 

library(devtools)
install_github('badbye/baidumap')

这是大神badbye写的适用于R的百度地图扩展包,github地址:https://github.com/badbye/baidumap

 

下面就可以开始初始化了

 

library(baidumap)
options(baidumap.key = '这里填写百度地图AK码')

初始化完成后的调用实例代码:

 

 

> getCoordinate(c('安阳高新技术产业开发区','安阳县安丰乡','安阳县白璧镇','安阳县柏庄镇','安阳县北郭乡','安阳县崔家桥镇','安阳县都里镇','安阳县韩陵镇','安阳县洪河屯乡','安阳县磊口乡','安阳县伦掌镇','安阳县吕村镇','安阳县马家乡','安阳县曲沟镇','安阳县善应镇','安阳县水冶镇','安阳县铜冶镇','安阳县辛村镇','安阳县许家沟乡','安阳县永和镇'), formatted = T)
                       longtitude latitude
安阳高新技术产业开发区   114.3518 36.11027
安阳县安丰乡             114.2960 36.23181
安阳县白璧镇             114.5040 36.09331
安阳县柏庄镇             114.3960 36.20138
安阳县北郭乡             114.7187 36.09208
安阳县崔家桥镇           114.4826 36.14603
安阳县都里镇             114.3171 36.12513
安阳县韩陵镇             114.4261 36.15789
安阳县洪河屯乡           114.3097 36.19475
安阳县磊口乡             114.0087 36.16260
安阳县伦掌镇             114.1496 36.25207
安阳县吕村镇             114.6346 36.09709
安阳县马家乡             114.0356 36.04292
安阳县曲沟镇             114.2113 36.13035
安阳县善应镇             114.1379 36.05460
安阳县水冶镇             114.1373 36.13610
安阳县铜冶镇             114.0785 36.23582
安阳县辛村镇             114.6492 36.04364
安阳县许家沟乡           114.1048 36.12409
安阳县永和镇             114.5780 36.09985

一秒出结果有木有!这个getCoordinate()函数还有其他的用法:

 

 

getCoordinate('北京大学') # json
getCoordinate('北京大学', output='xml') # xml
getCoordinate('北京大学', formatted = T) # character
getCoordinate(c('北京大学', '清华大学'), formatted = T) # matrix

 

 

 

 

 

 

 

 

 

  • 10
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 40
    评论
评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DexterLien

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值