如何从城市名称和邮政编码中获取经纬度数据
Posted
技术标签:
【中文标题】如何从城市名称和邮政编码中获取经纬度数据【英文标题】:How to fetch latitude and longitude data from city name and zipcode 【发布时间】:2018-02-07 12:40:30 【问题描述】:我正在寻找一种方法来获取经纬度坐标形成 R 中的印度邮政编码。
我的数据框看起来像:
Area Zip
Mumbai 410710
Mumbai 400083
Mumbai 400034
Mumbai 400612
希望得到:
Area Zip Latitude Longitude
Mumbai 410710 ... ...
Mumbai 400083
Mumbai 400034
Mumbai 400612
【问题讨论】:
【参考方案1】:您可以使用ggmap::geocode
。
library(ggmap)
zip <- read.table(text = "Area Zip
Mumbai 410710
Mumbai 400083
Mumbai 400034
Mumbai 400612", header = T)
gc <- do.call(rbind,
apply(zip, 1, function(x)geocode(location = paste(x[2], x[1], sep = ", "),
source = "google"))
)
cbind(zip, gc)
# Area Zip lon lat
# 1 Mumbai 410710 72.87766 19.07598
# 2 Mumbai 400083 72.93742 19.11662
# 3 Mumbai 400034 72.81482 18.97242
# 4 Mumbai 400612 73.02872 19.17993
但是,有时 Google API 似乎会无缘无故地返回 NA
。因此,您可能必须遍历它,直到不再包含 NA
。
或使用source = "dsk"
。但是,对于所有这些邮政编码,数据科学工具包可能没有很长的纬度。
【讨论】:
当我尝试运行上面的代码时,它给了我以下错误 - 你能运行apply(zip, 1, function(x)geocode(location = paste(x[2], x[1], sep = ", "), source = "google"))
吗?
地理编码错误(location = paste(x[2], x[1], sep = ", "), source = "google") :缺少参数“x”,没有默认值
不幸的是,我无法重现该错误。您能否将edit 的输出sessionInfo()
发送给您的Q。
@loki 有没有办法从 zip 中获取经纬度?以上是关于如何从城市名称和邮政编码中获取经纬度数据的主要内容,如果未能解决你的问题,请参考以下文章