Learn R Programming

osmdata (version 0.3.0)

trim_osmdata: trim_osmdata

Description

Trim an osmdata object to within a bounding polygon

Usage

trim_osmdata(dat, bb_poly, exclude = TRUE)

Value

A trimmed version of dat, reduced only to those components lying within the bounding polygon.

Arguments

dat

An osmdata object returned from osmdata_sf() or osmdata_sc().

bb_poly

An sf or sfc object, or matrix representing a bounding polygon. Can be obtained with getbb (..., format_out = "polygon") or getbb (..., format_out = "sf_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.

See Also

Other transform: osm_elevation(), osm_poly2line(), unique_osmdata(), unname_osmdata_sf()

Examples

Run this code
if (FALSE) {
bb <- getbb ("colchester uk")
query <- opq (bb) |>
    add_osm_feature (key = "highway")
# Then extract data from 'Overpass' API
dat <- osmdata_sf (query, quiet = FALSE)
# Then get bounding *polygon* for Colchester, as opposed to rectangular
# bounding box, and use that to trim data within that polygon:
bb_pol <- getbb ("colchester uk", format_out = "polygon")
library (sf) # required for this function to work
dat_tr <- trim_osmdata (dat, bb_pol)
bb_sf <- getbb ("colchester uk", format_out = "sf_polygon")
class (bb_sf) # sf data.frame
dat_tr <- trim_osmdata (dat, bb_sf)
bb_sp <- as (bb_sf, "Spatial")
class (bb_sp) # SpatialPolygonsDataFrame
dat_tr <- trim_osmdata (dat, bb_sp)

# Server-side trimming equivalent
bb <- getbb ("colchester uk", format_out = "osm_type_id")
query <- opq (bb) |>
    add_osm_feature (key = "highway")
dat <- osmdata_sf (query, quiet = FALSE)
}

Run the code above in your browser using DataLab