Muszę znaleźć pakiet w R lub kod źródłowy w R, który wykonuje geokodowanie wsadowe przy użyciu Bing, Yahoo, OpenStreetmap. Masz jakieś sugestie?
Muszę znaleźć pakiet w R lub kod źródłowy w R, który wykonuje geokodowanie wsadowe przy użyciu Bing, Yahoo, OpenStreetmap. Masz jakieś sugestie?
Odpowiedzi:
Warunki API stale się zmieniają, ale to powinno działać już teraz.
OSM :
devtools::install_github("hrbrmstr/nominatim")
library(nominatim)
b1 <- osm_geocode("Berlin, Germany")
b1[c("lat", "lon")]
Yahoo :
devtools::install_github("trestletech/rydn")
library(rydn)
options(RYDN_KEY="yourAPIkey", RYDN_SECRET="yourSecret")
b2 <- find_place("Berlin, Germany")
b2[c("latitude", "longitude")]
Bing : taRifx.geo (działa z Google) i podobno działa z Bing, ale nigdy nie udało mi się go uruchomić, więc napisałem własną funkcję.
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")
Google :
library(ggmap)
geocode("Berlin, Germany", source="google")