R中的批量地理编码


15

我需要找到R中的程序包或R中的源代码,该程序包使用Bing,Yahoo,OpenStreetmap执行批地理编码。你有什么建议吗?


您看过r-bloggers.com/batch-geocoding-with-r-and-google-maps吗?Google只不过是一个起点?
约翰·鲍威尔

不知道如果这有助于在所有,但你可能还是来看看这个SO问题
少校

Answers:


18

API条件不断变化,但是现在应该可以使用。

OSM

devtools::install_github("hrbrmstr/nominatim")
library(nominatim)
b1 <- osm_geocode("Berlin, Germany")
b1[c("lat", "lon")]

雅虎

devtools::install_github("trestletech/rydn")
library(rydn)
options(RYDN_KEY="yourAPIkey", RYDN_SECRET="yourSecret")
b2 <- find_place("Berlin, Germany")  
b2[c("latitude", "longitude")]

BingtaRifx.geo(可与Google一起使用),据说可以与Bing一起使用,但我无法使其正常工作,因此我编写了自己的函数。

bGeoCode <- function(str, BingMapsKey){
    require(RCurl)
    require(RJSONIO)
    u <- URLencode(paste0("http://dev.virtualearth.net/REST/v1/Locations?q=", str, "&maxResults=1&key=", BingMapsKey))
    d <- getURL(u)
    j <- fromJSON(d,simplify = FALSE) 
    if (j$resourceSets[[1]]$estimatedTotal > 0) {
      lat <- j$resourceSets[[1]]$resources[[1]]$point$coordinates[[1]]
      lng <- j$resourceSets[[1]]$resources[[1]]$point$coordinates[[2]]
    }
    else {    
      lat <- lng <- NA
    }
    c(lat,lng)
}  

bGeoCode("Berlin, Germany", "yourAPIKeyHere")

谷歌

library(ggmap)  
geocode("Berlin, Germany", source="google")
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.