
Return an OSM Overpass query as a data.frame object.
Source:R/get-osmdata-df.R
osmdata_data_frame.Rd
Return an OSM Overpass query as a data.frame object.
Arguments
- q
An object of class
overpass_query
constructed with opq and add_osm_feature or a string with a valid query, such as"(node(39.4712701,-0.3841326,39.4713799,-0.3839475);); out;"
. May be be omitted, in which case the attributes of the data.frame will not include the query. See examples below.- 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 xml2 returned from osmdata_xml.- quiet
suppress status messages.
- stringsAsFactors
Should character strings in the 'data.frame' be coerced to factors?
Details
If you are not interested in the geometries of the results, it's a
good option to query for objects that match the features only and forget
about members of the ways and relations. You can achieve this by passing
the parameter body = "tags"
to opq
.
See also
Other extract:
osmdata_sc()
,
osmdata_sf()
,
osmdata_sp()
,
osmdata_xml()
Examples
# Bounding box of "hampi india":
bb <- c (76.4410201, 15.3158, 76.4810201, 15.3558)
query <- opq (bb)
query <- add_osm_feature (query, key = "historic", value = "ruins")
# Equivalent to:
if (FALSE) { # \dontrun{
query <- opq ("hampi india") |>
add_osm_feature (key = "historic", value = "ruins")
} # }
# Then extract data from 'Overpass' API
if (FALSE) { # \dontrun{
hampi_df <- osmdata_data_frame (query)
attr (hampi_df, "bbox")
attr (hampi_df, "overpass_call")
attr (hampi_df, "meta")
} # }
# Complex query as a string (not possible with regular osmdata functions)
q <- '[out:csv(::type, ::id, "name:ca", "wikidata")][timeout:50];
area[name="Països Catalans"][boundary=political]->.boundaryarea;
rel(area.boundaryarea)[admin_level=8][boundary=administrative];
map_to_area -> .all_level_8_areas;
( nwr(area.boundaryarea)[amenity=townhall]; >; );
is_in;
area._[admin_level=8][boundary=administrative] -> .level_8_areas_with_townhall;
(.all_level_8_areas; - .level_8_areas_with_townhall;);
rel(pivot);
out tags;'
if (FALSE) { # \dontrun{
no_townhall <- osmdata_data_frame (q)
no_townhall
} # }