functions for spherical geometry, using the s2 package based on the google s2geometry.io library
sf_use_s2(use_s2)
st_as_s2(x, ...)
# S3 method for sf
st_as_s2(x, ...)
# S3 method for sfc
st_as_s2(x, ..., oriented = getOption("s2_oriented", FALSE), rebuild = FALSE)
logical; if TRUE
, use the s2 spherical geometry package
for geographical coordinate operations
object of class sf
, sfc
or sfg
passed on
logical; if FALSE
, polygons that
cover more than half of the globe are inverted; if TRUE
, no reversal
takes place and it is assumed that the inside of the polygon is to the
left of the polygon's path.
logical; call s2_rebuild on the geometry (think of this as a st_make_valid
on the sphere)
sf_use_s2
returns the value of this variable before (re)setting it,
invisibly if use_s2
is not missing.
st_as_s2
converts an sf
POLYGON object into a form readable by s2
.
m = rbind(c(-1,-1), c(1,-1), c(1,1), c(-1,1), c(-1,-1))
m1 = rbind(c(-1,-1), c(1,-1), c(1,1), c(-1,1), c(-1,0), c(-1,-1))
m0 = m[5:1,]
mp = st_multipolygon(list(
list(m, 0.8 * m0, 0.01 * m1 + 0.9),
list(0.7* m, 0.6*m0),
list(0.5 * m0),
list(m+2),
list(m+4,(.9*m0)+4)
))
sf = st_sfc(mp, mp, crs = 'EPSG:4326')
s2 = st_as_s2(sf)