Trim an osmdata object to within a bounding polygon
Arguments
- dat
An osmdata object returned from osmdata_sf or osmdata_sp.
- bb_poly
A matrix representing a bounding polygon obtained with
getbb (..., format_out = "polygon")
(and possibly selected from resultant list where multiple polygons are returned).- exclude
If TRUE, objects are trimmed exclusively, only retaining those strictly within the bounding polygon; otherwise all objects which partly extend within the bounding polygon are retained.
Note
It will generally be necessary to pre-load the sf package for this function to work correctly.
Caution is advised when using polygons obtained from Nominatim via
getbb(..., format_out = "polygon"|"sf_polygon")
. These shapes can be
outdated and thus could cause the trimming operation to not give results
expected based on the current state of the OSM data.
See also
Other transform:
osm_elevation()
,
osm_poly2line()
,
unique_osmdata()
,
unname_osmdata_sf()
Examples
if (FALSE) { # \dontrun{
dat <- opq ("colchester uk") %>%
add_osm_feature (key = "highway") %>%
osmdata_sf (quiet = FALSE)
bb <- getbb ("colchester uk", format_out = "polygon")
library (sf) # required for this function to work
dat_tr <- trim_osmdata (dat, bb)
bb <- getbb ("colchester uk", format_out = "sf_polygon")
class (bb) # sf data.frame
dat_tr <- trim_osmdata (dat, bb)
bb <- as (bb, "Spatial")
class (bb) # SpatialPolygonsDataFrame
dat_tr <- trim_osmdata (dat, bb)
} # }