使用 google 地理定位 Api 查找匹配位置的所有组合

Finding all Combinations of match places with google geolocation Api

我有这样一组数据:

 > head(base_1[,c("logradouro","nomemun_x")])
               logradouro      nomemun_x
1      RODOVIA BR-419 KM 236  Anastácio
2      RUA CASTRO ALVES, 1130 São Marcos
3   CONEGO JOAO MARCHESI, 526 São Marcos
4 RUA BONFILHO NICOLETTI, 670 São Marcos
5         VENANCIO AIRES, 444 São Marcos
6         OSVALDO ARANHA, 478 São Marcos

我得到一个代码找到坐标 latitude/longitude:

 geocodeAdddress <- function(address) {
    require(RJSONIO)
    url <- "http://maps.google.com/maps/api/geocode/json?address="
    url <- URLencode(paste(url, address, "&sensor=false", sep = ""))
    x <- fromJSON(url, simplify = FALSE)
    if (x$status == "OK") {
            latitude <- x$results[[1]]$geometry$location$lat
            longitude <- x$results[[1]]$geometry$location$lng
            localizacao_tipo  <- x$results[[1]]$geometry$location_type
            formatacao_endereco  <- x$results[[1]]$formatted_address
            out<-cbind(longitude,latitude,localizacao_tipo,formatacao_endereco)
    } else {
            out <- NA
    }
    Sys.sleep(0.2)  # API only allows 5 requests per second
    out
}

现在想要一个程序来使用变量 logradouronomemun_x 进行所有可能的组合,以找到坐标我要。

试试这个:

df
#                                      logradouro   nomemun_x
#1                   1      RODOVIA BR-419 KM 236   Anastácio
#2                  2      RUA CASTRO ALVES, 1130  São Marcos
#3                  3   CONEGO JOAO MARCHESI, 526  São Marcos
#4                  4 RUA BONFILHO NICOLETTI, 670  São Marcos
#5                  5         VENANCIO AIRES, 444  São Marcos
#6                  6         OSVALDO ARANHA, 478  São Marcos

out <- df[as.matrix(expand.grid(1:nrow(df), 1:nrow(df))),]
head(out, 10)
#                                         logradouro   nomemun_x
#1                      1      RODOVIA BR-419 KM 236   Anastácio
#2                     2      RUA CASTRO ALVES, 1130  São Marcos
#3                     3   CONEGO JOAO MARCHESI, 526  São Marcos
#4                     4 RUA BONFILHO NICOLETTI, 670  São Marcos
#5                     5         VENANCIO AIRES, 444  São Marcos
#6                     6         OSVALDO ARANHA, 478  São Marcos
#1.1                   1       RODOVIA BR-419 KM 236   Anastácio
#2.1                   2      RUA CASTRO ALVES, 1130  São Marcos
#3.1                   3   CONEGO JOAO MARCHESI, 526  São Marcos
#4.1                   4 RUA BONFILHO NICOLETTI, 670  São Marcos

cartesian product:

out <- merge(df, df, by=NULL)[1:2]
head(out, 10)
#                                     logradouro.x nomemun_x.x
#1                    1      RODOVIA BR-419 KM 236   Anastácio
#2                   2      RUA CASTRO ALVES, 1130  São Marcos
#3                   3   CONEGO JOAO MARCHESI, 526  São Marcos      
#4                   4 RUA BONFILHO NICOLETTI, 670  São Marcos
#5                   5         VENANCIO AIRES, 444  São Marcos
#6                   6         OSVALDO ARANHA, 478  São Marcos
#7                    1      RODOVIA BR-419 KM 236   Anastácio
#8                   2      RUA CASTRO ALVES, 1130  São Marcos
#9                   3   CONEGO JOAO MARCHESI, 526  São Marcos
#10                  4 RUA BONFILHO NICOLETTI, 670  São Marcos