【R语言】(全代码发放)调用腾讯地图API检索四种相关地标信息

一、前言

这几天用R和MATLAB在学机器学习的时候尝试调用了API,无意间发现了腾讯地图的API,开源的,就折腾了个半个多小时,花十分钟来记录一下,以下出现的建筑名仅供参考学习(脑海里第一时间浮现的,并无他意),R版本是4.2.1

二、准备工作

2.1注册

右上角控制台,注册一个WebService API的用户,选个人开发者即可
地址:https://lbs.qq.com/webservice_v1/index.html

在这里插入图片描述

2.2拿KEY

创建应用,用途选教育,随便命名
添加Key,随便命名

在这里插入图片描述

三、调用API检索信息

install.packages('jsonlite')
library(jsonlite)
key="*****-JNICX-*****-75PQ7-*****-EXFU6" #输入自己申请到的key
3.1地址补全

只需要修改前面的参数然后直接运行即可,以此类推
所有地址只需要市级即可

ad="佛山市白坭中学"

c <- fromJSON(paste0("https://apis.map.qq.com/ws/smart_address/address_complete?address=",ad,"&key=",key))
resc <- c(c$result$completed_address,
          paste0(c$result$province$name,
                 c$result$city$name,
                 c$result$district$name,
                 c$result$town$name,
                 c$result$road$name,
                 c$result$village$name))
resc #标准地址,具体地址

在这里插入图片描述

3.2分析地标建筑
ad2="佛山市南海中学"

d <- fromJSON(paste0("https://apis.map.qq.com/ws/smart_address/place_analy?address=",ad2,"&key=",key))
resd <- c(d$result$pois$address,d$result$pois$category)
print(resd)
sub1 <- subset(as.data.frame(d$result$sub_pois), select=c(address,title,category,location))  #矩
#sub1 <- paste0(d$result$sub_pois$address,d$result$sub_pois$title,d$result$sub_pois$category,d$result$sub_pois$location) #行
print(sub1)

在这里插入图片描述

3.3定位IP
ip="119.131.17.224"

b <- fromJSON(paste0("https://apis.map.qq.com/ws/location/v1/ip?ip=",ip,"&key=",key))
resb <- c(b$result$location$lng,b$result$location$lat)
print(resb)

在这里插入图片描述

3.4.1查询经纬度

各个平台算法不同,这里的经纬度是以腾讯地图的

la="广东省广州市番禺区大学城外环东路382号"

a <- fromJSON(paste0("https://apis.map.qq.com/ws/geocoder/v1/?address=",la,"&key=",key))
resa <- c(a$result$location$lng,a$result$location$lat)
print(resa)

在这里插入图片描述

3.4.2批量查询经纬度
la2<-c("广东省广州市番禺区大学城外环东路382号",
       "广州市番禺区广州大学城外环东路232号",
       "广东省广州市番禺区大学城外环东路132号",
       "广东省广州市番禺区大学城外环东路280号")
k <- list()
for (i in la2) {
  a <- fromJSON(paste0("https://apis.map.qq.com/ws/geocoder/v1/?address=",i,"&key=",key))
  resa2 <- c(a$result$location$lng,a$result$location$lat)
  k[[i]] <- print(resa2)
}
resa3 <- t(as.data.frame(k))
print(resa3)

在这里插入图片描述

四、讨论

这里仅展示了腾讯地图的,还有可以百度地图,有R包REmap可以做可视化。之前在社区给人评论了R可以实现,还有人开怼我。。。有人觉得没用,这不网页一搜就有了;有人觉得有用,空间数据做人口学等可视化,大把;还有最重要的是批量工作流,没无用之物,有无用之人,杠我就是你对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Bioinfo Guy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值