全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3519 7
2018-01-25

请教大家一下,我现在想把地址转换为经纬度,用了百度地图API,
在  geo <- fromJSON(substr(json,regexpr('\\(',json)+1,nchar(json)-1))这一步出现报错——
“Error in fromJSON(substr(json, regexpr("\\(", json) + 1, nchar(json) -  :
  incomplete list”
想请问是出了什么问题?




代码如下——
#循环解析过程
for (location in address) {
  #生成规则的url地址(具体参数可参考Geocoding API文档)
  url <- paste("http://api.map.baidu.com/geocoder/v2/?ak=",ak,"&output=json&address=",location, sep = "")
  #利用URLencode()转换为可解析的URL地址
  url_string <- URLencode(url)
  #通过readLines读取URL地址,并解析JSON格式的结果
  json<- readLines(url_string, warn=F)
  geo <- fromJSON(substr(json,regexpr('\\(',json)+1,nchar(json)-1))
                  #在解析结果中提取经纬度
                  lng<-geo$result$location$lng
                  lat<-geo$result$location$lat
                  #存储到已经建好的字段中
                  baidu_lng <- c(baidu_lng,lng)
                  baidu_lat <- c(baidu_lat,lat)
}

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-1-25 11:24:19
用这一步去得到geo,有这么好的工具为什么还要用readlines?
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-1-25 11:52:00
jiangbeilu 发表于 2018-1-25 11:24
用这一步去得到geo,有这么好的工具为什么还要用readlines?
好像没有跑出来?
baidu_lng,latitude=baidu_lat这两个都是空的


代码是这样的——
baidu_lng <- c()
baidu_lat <- c()
ak <- "86RkXL5ZwPqWg89F1Rip……"   #百度地图api的秘钥
#加载包
library(rjson)
library(RCurl)
#循环解析过程
for (location in address) {
  #生成规则的url地址(具体参数可参考Geocoding API文档)
  url <- paste('http://api.map.baidu.com/geocoder/v2/?ak=',ak,'&callback=renderOption&output=json&address=',location,sep="")
  #利用URLencode()转换为可解析的URL地址
  url_string <- URLencode(url)
  geo <- fromJSON(file=url)
  
                  #在解析结果中提取经纬度
                  lng<-geo$result$location$lng
                  lat<-geo$result$location$lat
                  #存储到已经建好的字段中
                  baidu_lng <- c(baidu_lng,lng)
                  baidu_lat <- c(baidu_lat,lat)
}
#整理结果
result <- data.frame(address=address,longitude=baidu_lng,latitude=baidu_lat)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-1-25 13:44:56
复制代码

空的话,就看你的接口了
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2018-1-25 14:59:34
jiangbeilu 发表于 2018-1-25 13:44
空的话,就看你的接口了
斯国一,大大厉害!
谢谢你~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-4-24 23:17:37
雨三3104 发表于 2018-1-25 14:59
斯国一,大大厉害!
谢谢你~
请问下您当年这段代码改成了什么样子,能给我看一下吗,我遇到了同样的情况
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群