R:地理编码返回的结果多于我的查询

时间:2017-08-15 23:09:45

标签: r google-maps geocode

我有一个数据框,有近10k个位置,想要获得与地理编码一样多的坐标,但我的代码并没有像我预期的那样返回结果。我会解释一下。 我有这个:

# Getting records for Promenaea genus for an exemple
library(dismo)
promena<-gbif("Promenaea")

#Once I get all records I keep only those that don't have coordinates
promena<-promena[(is.na(promena$lon)),]

#And then, try to get coordinates for them
b <- try( geocode(promena$cloc) )

我的计划是用地理编码的结果来解决我的Promenaea物种的数据框架,然后只删除地理编码无法找到坐标的那些行(那些有NA的坐标)。但我的数据框有259行,地理编码返回318行作为结果......所以有些东西不匹配。

我感谢任何提示

1 个答案:

答案 0 :(得分:1)

所以我一直在研究并找到了一些选择:

为此目的,dismo :: geocode函数有一个名为oneRecord的参数:

#Nem attempt of getting coordinates. 
b <- try( ggmap::geocode(promena$cloc))

可是:

  

oneRecord   逻辑。如果为TRUE,则返回x中每个项目的单个记录。如果API返回多个记录,则通过平均坐标并获取所有边界框的并集​​来计算此记录的值(说明文档)

由于我更喜欢​​真正的衡量标准,而不是平均值,我一直在寻找并发现ggmap也有地理编码功能:

b <- try(ggmap::geocode(promena$cloc, output="more"))

但是我只得到了坐标,我希望将位置与坐标相关联,这样我就可以检查geocode是否返回了一个好的结果,所以我使用了这个参数:

.main img {
  width: 30px;
  height: 30px;
  background-color: red;
}

最后,我比较了两种方法的结果,它们几乎相同,所以我想检查记录非常重要,因为函数可能确实返回平均值