R/reversegeo.R

Defines functions reversegeo

Documented in reversegeo

#' Reverse Geolocation
#'
#' Get city, postcode, county and country from latitude and longitude
#' coordinates using Photon API service (\url{https://photon.komoot.io/}).
#'
#'
#' @param latitude Real number
#' @param longitude Real number
#'
#' @return
#' A tibble with reverse geolocation data.
#' @export
#'
#' @examples
#' reversegeo(40.414915938483574, -3.706841931806074)
reversegeo <- function(latitude, longitude) {
  cat(latitude, longitude, "\n")

  url <- paste0("https://photon.komoot.io/reverse?lat=", latitude, "&lon=", longitude, "&lang=en")

  tryCatch({
    response <- httr::GET(url)
    content <- httr::content(response)
    dataset <- tibble::tibble(x = content)
    dataset <- dataset[1, ]
    dataset <- suppressMessages(tidyr::unnest_wider(dataset, x))
    dataset <- tidyr::unnest_wider(dataset, ...1)
    dataset <- dataset["properties"]
    dataset <- tidyr::unnest_wider(dataset, properties)
    dataset
  },
  error = function(e) tibble::tibble(error = "error"))

}
alceal/reversegeo documentation built on Dec. 19, 2021, 12:25 a.m.