Alternative version of add_osm_feature for creating single queries with multiple features. Key-value matching may be controlled by using the filter symbols described in

add_osm_features(opq, features, bbox = NULL)



An overpass_query object


Character vector of key-value pairs with keys and values enclosed in escape-formatted quotations (see examples).


optional bounding box for the feature query; must be set if no opq query bbox has been set


opq object

add_osm_feature vs add_osm_features

Features defined within an add_osm_features call are combined with a logical OR.

Chained calls to either add_osm_feature or add_osm_features() combines features from these calls in a logical AND; this is analagous to chaining dplyr::filter() on a data frame.

add_osm_features() with only one feature is logically equivalent to add_osm_feature().


See also


if (FALSE) { q <- opq ("portsmouth usa") %>% add_osm_features (features = c ("\"amenity\"=\"restaurant\"", "\"amenity\"=\"pub\"")) # This extracts in a single query the same result as the following: q1 <- opq ("portsmouth usa") %>% add_osm_feature(key = "amenity", value = "restaurant") q2 <- opq ("portsmouth usa") %>% add_osm_feature(key = "amenity", value = "pub") c (osmdata_sf (q1), osmdata_sf (q2)) # all restaurants OR pubs }