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

一、前言

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

二、准备工作

2.1注册

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

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

2.2拿KEY

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

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

三、调用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)

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

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)

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

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)

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

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语言】(全代码发放)调用腾讯地图API检索四种相关地标信息_第6张图片

四、讨论

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

你可能感兴趣的:(R生信,r语言,开发语言,大数据)