如何从城市名称和邮政编码中获取经纬度数据

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。 @lok​​i 有没有办法从 zip 中获取经纬度?

以上是关于如何从城市名称和邮政编码中获取经纬度数据的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:如何从城市名称中获取纬度和经度点? [关闭]

如何使用纬度和经度获取位置名称或城市?

如何在android中使用纬度和经度获取城市名称

从城市名称获取纬度和经度

从地理编码纬度和经度获取地址

如何从给定的纬度和经度中查找位置名称?