前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【R语言】利用高德地图批量处理银行网点地址获取经纬度和行政区

【R语言】利用高德地图批量处理银行网点地址获取经纬度和行政区

作者头像
黑妹的小屋
发布2021-01-28 11:24:08
1.5K0
发布2021-01-28 11:24:08
举报
文章被收录于专栏:菜鸟学数据分析之R语言

高德地图密钥Key的申请

01

查看后期视频:高德地图申请密钥key

密钥Key如何添加至RStudio?

代码语言:javascript
复制
usethis::edit_r_environ()#打开environ界面
key="2ad35axxxxxxx"#定义完一定要保存
key <- Sys.getenv("key")

构建获取location的经纬度函数

代码语言:javascript
复制
>library(xml2)
>library(rvest)
>library(dplyr)
>library(stringr)
>library(rjson)
>library(jsonlite)
>gGetLocation = function(address)  {
>key <- Sys.getenv("key")
>url =paste0("https://restapi.amap.com/v3/geocode/geo?key=",key,"&address=",address)
>data = read_html(url, encoding='utf-8') %>% html_text()
>df = as.data.frame(fromJSON(data))  
  return (df['geocodes.location']) 
}
# test,测试
> gGetLocation('南京市') 
     geocodes.location
1 118.796877,32.060255

构建获取district的区县函数

代码语言:javascript
复制
gGetdistrictFuZhou = function(address)  {
  key <- Sys.getenv("lxl")
  url = paste0("https://restapi.amap.com/v3/geocode/geo?key=",key,"&city=","福州市","&address=",address)
  data = read_html(url, encoding='utf-8') %>% html_text()
  df = as.data.frame(fromJSON(data))  
  return (df['geocodes.district']) 
}
gGetdistrictFuZhou = function(address)  {
  key <- Sys.getenv("lxl")
  url = paste0("https://restapi.amap.com/v3/geocode/geo?key=",key,"&city=","福州市","&address=",address)
  data = read_html(url, encoding='utf-8') %>% html_text()
  df = as.data.frame(fromJSON(data))  
  return (df['geocodes.district']) 
}
#test 测试
>gGetdistrictFuZhou("凤城镇丹凤东路25号海联大厦1层")
  geocodes.district
1            连江县

批量处理

数据源结构特点:

图1 数据源结构

代码:

代码语言:javascript
复制
library(readxl)
library(dplyr)
library(stringr)
library(tidyverse)
library(openxlsx)
YH <- read_excel("~/Desktop/YH.xlsx")
YH$经纬度 <- NA
YH$区县 <- NA
for(i in 1:nrow(YH)){
  print(i)
  if (is.na(YH$经纬度[i])) {
    try({YH$经纬度[i] <- gGetLocation(YH$address[i])})
  if(is.na(YH$区县[i])){
    try({YH$区县[i]<-gGetdistrictFuZhou(YH$address[i])})
  }
  }}
YH%>%separate(col=经纬度",into=c("lon","lat"),sep=",")->YH
write.xlsx(YH,"~/Desktop/微信公众号运营/银行网点.xlsx")

批量处理后数据结构:

图2 数据源结构

批量处理后的数据暂无缺失值,若存在个别缺失值很正常,通常是因为数据源地址结构不是省+市+区县+街道格式,若数据源地址结构无明显规律,建议url代码中添加“&city”,运行过程中有啥问题,请私聊我可改进代码~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 菜鸟学数据分析之R语言 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档