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

时间:2018-02-07 12:40:31

标签: r geolocation gis latitude-longitude

我正在寻找一种方法来获得R中的印度邮政编码的纬度和经度坐标。

我的数据框架如下:

Area       Zip   
Mumbai    410710
Mumbai    400083
Mumbai    400034
Mumbai    400612

希望得到:

Area       Zip         Latitude     Longitude
Mumbai    410710        ...           ...
Mumbai    400083
Mumbai    400034
Mumbai    400612

1 个答案:

答案 0 :(得分: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"。但是,datasciencetoolkit对于所有这些邮政编码可能没有长时间。