Como capturar as coordenadas dos dois pontos extremos de uma rua utilizando o R?


79
views
1
5 months ago by
Community: GAMMA OVERFLOW

Além do título da pergunta, explique ela de forma mais detalhada no corpo da pergunta. Caso já tenha algum código escrito, apresente-o para se ter uma ideia de quanto já se avançou no problema. De preferência apresente um exemplo reproduzível do seu problema.

written 5 months ago by Adelmo Filho  

1 Answer


0
5 months ago by

A obtenção de informações espaciais a partir de um dado endereço, utilizando o R, pode ser realizada com o pacote chamado RJSONIO. Descobri a resposta para a pergunta acima após visitar o exemplo da página Stack Overflow (https://stackoverflow.com/questions/32504880/street-address-to-geolocation-lat-long). Eles apresentam a seguinte função

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") {
    out <- c(x$results[[1]]$geometry$location$lng,
             x$results[[1]]$geometry$location$lat)
  } else {
    out <- NA
  }
  Sys.sleep(0.2)  # API only allows 5 requests per second
  out
}

Da forma que a função geocodeAddress foi construída, extrai apenas as coordenadas de localização. Entretanto , a função fromJSON já capturou outras informações como :

x$results[[1]]$geometry$viewport$northeast ,

x$results[[1]]$geometry$viewport$southwest .

Logo, uma simplificação do código disponibilizará o restante das informações coletadas, como pode-se ver no código abaixo trocamos

out <- c(x$results[[1]]$geometry$location$lng,
x$results[[1]]$geometry$location$lat)

por

out <- c(x)

geocodeAdddressx <- 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") {
    out <- c(x)
  } else {
    out <- NA
  }
  Sys.sleep(0.2)  # API only allows 5 requests per second
  out
}

 

Entretando, por desconhecimento da área de GIS, tenho dúvidas se algum ponto intermediário do endereço entre  x$results[[1]]$geometry$viewport$northeast e x$results[[1]]$geometry$viewport$southwest não estão fora da região definida por estes pontos. Se alguém poder sanar esta dúvida agradeço!

 

Please login to add an answer/comment or follow this question.

Similar posts:
Search »
  • Nothing matches yet.