Create viewport from sf, sfc or sfg object
Usage
st_viewport(x, ..., bbox = st_bbox(x), asp)
Arguments
- x
object of class sf, sfc or sfg object
- ...
parameters passed on to viewport
- bbox
the bounding box used for aspect ratio
- asp
numeric; target aspect ratio (y/x), see Details
Value
The output of the call to viewport
Details
parameters width
, height
, xscale
and yscale
are set such that aspect ratio is honoured and plot size is maximized in the current viewport; others can be passed as ...
If asp
is missing, it is taken as 1, except when isTRUE(st_is_longlat(x))
, in which case it is set to 1.0 /cos(y)
, with y
the middle of the latitude bounding box.
Examples
library(grid)
#>
#> Attaching package: ‘grid’
#> The following object is masked from ‘package:spatstat.geom’:
#>
#> as.mask
nc = st_read(system.file("shape/nc.shp", package="sf"))
#> Reading layer `nc' from data source
#> `/home/runner/work/_temp/Library/sf/shape/nc.shp' using driver `ESRI Shapefile'
#> Simple feature collection with 100 features and 14 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
grid.newpage()
pushViewport(viewport(width = 0.8, height = 0.8))
pushViewport(st_viewport(nc))
invisible(lapply(st_geometry(nc), function(x) grid.draw(st_as_grob(x, gp = gpar(fill = 'red')))))