Nothing
#' Return an OSM Overpass query as an \link{osmdata} object in \pkg{sp}
#' format.
#'
#' @param q An object of class `overpass_query` constructed with
#' \link{opq} and \link{add_osm_feature}. May be be omitted,
#' in which case the \link{osmdata} object will not include the
#' query.
#' @param doc If missing, `doc` is obtained by issuing the overpass query,
#' `q`, otherwise either the name of a file from which to read data,
#' or an object of class \pkg{xml2} returned from
#' \link{osmdata_xml}.
#' @param quiet suppress status messages.
#'
#' @return An object of class `osmdata` with the OSM components (points, lines,
#' and polygons) represented in \pkg{sp} format.
#'
#' @family extract
#' @export
#'
#' @examples
#' \dontrun{
#' hampi_sp <- opq ("hampi india") %>%
#' add_osm_feature (key = "historic", value = "ruins") %>%
#' osmdata_sp ()
#' }
osmdata_sp <- function (q, doc, quiet = TRUE) {
obj <- osmdata () # uses class def
if (missing (q)) {
if (missing (doc)) {
stop (
'arguments "q" and "doc" are missing, with no default. ',
"At least one must be provided."
)
}
if (!quiet) {
message ("q missing: osmdata object will not include query")
}
} else if (is (q, "overpass_query")) {
obj$bbox <- q$bbox
obj$overpass_call <- opq_string_intern (q, quiet = quiet)
} else if (is.character (q)) {
obj$overpass_call <- q
} else {
stop ("q must be an overpass query or a character string")
}
check_not_implemented_queries (obj)
temp <- fill_overpass_data (obj, doc, quiet = quiet)
obj <- temp$obj
doc <- temp$doc
if (isTRUE (obj$meta$query_type == "adiff")) {
# return incorrect result
stop ("adiff queries not yet implemented.")
}
if (!quiet) {
message ("converting OSM data to sp format")
}
res <- rcpp_osmdata_sp (paste0 (doc))
if (is.null (obj$bbox)) {
obj$bbox <- paste (res$bbox, collapse = " ")
}
obj$osm_points <- res$points
obj$osm_lines <- res$lines
obj$osm_polygons <- res$polygons
obj$osm_multilines <- res$multilines
obj$osm_multipolygons <- res$multipolygons
osm_items <- grep ("^osm_", names (obj))
obj[osm_items] <- fix_columns_list (obj[osm_items])
class (obj) <- c (class (obj), "osmdata_sp")
return (obj)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.