Mã hóa địa lý hàng loạt trong R


15

Tôi cần tìm một gói trong R hoặc mã nguồn trong R thực hiện mã hóa địa lý hàng loạt bằng Bing, Yahoo, OpenStreetmap. Bạn có đề nghị nào không?


Bạn đã xem cái này chưa, r-bloggers.com/batch-geocoding-with-r-and-google-maps ? Google chỉ nhưng một nơi để bắt đầu?
John Powell

Bạn không chắc chắn nếu điều này giúp chút nào, nhưng bạn vẫn có thể mất một cái nhìn lúc này câu hỏi SO
maj

Câu trả lời:


18

Các điều kiện API liên tục thay đổi, nhưng điều này sẽ hoạt động ngay bây giờ.

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 (làm việc với Google) và được cho là hoạt động với Bing, nhưng tôi không bao giờ có thể làm cho nó hoạt động, vì vậy tôi đã viết chức năng của riêng mình.

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")
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.