sf (version 0.5-2)

geos_unary: Geometric unary operations on (pairs of) simple feature geometry sets

Description

Geometric unary operations on (pairs of) simple feature geometry sets

Usage

st_buffer(x, dist, nQuadSegs = 30)

st_boundary(x)

st_convex_hull(x)

st_simplify(x, preserveTopology = FALSE, dTolerance = 0)

st_triangulate(x, dTolerance = 0, bOnlyEdges = FALSE)

st_voronoi(x, envelope, dTolerance = 0, bOnlyEdges = FALSE)

st_polygonize(x)

st_line_merge(x)

st_centroid(x)

st_point_on_surface(x)

st_segmentize(x, dfMaxLength, ...)

Arguments

x

object of class sfg, sfg or sf

dist

numeric; buffer distance for all, or for each of the elements in x; in case dist is a units object, it should be convertible to arc_degree if x has geographic coordinates, and to st_crs(x)$units otherwise

nQuadSegs

integer; number of segments per quadrant (fourth of a circle)

preserveTopology

logical; carry out topology preserving simplification?

dTolerance

numeric; tolerance parameter

bOnlyEdges

logical; if TRUE, return lines, else return polygons

envelope

object of class sfc or sfg with the envelope for a voronoi diagram

dfMaxLength

maximum length of a line segment. If x has geographical coordinates (long/lat), dfMaxLength is either a numeric expressed in meter, or an object of class units with length units or unit rad, and segmentation takes place along the great circle, using gcIntermediate.

...

ignored

Value

st_buffer, st_boundary, st_convex_hull, st_simplify, st_triangulate, st_voronoi, st_polygonize, st_line_merge, st_centroid and st_segmentize return an sfc or an sf object with the same number of geometries as x

Details

st_triangulate requires GEOS version 3.4 or above

st_voronoi requires GEOS version 3.4 or above

in case of st_polygonize, x must be an object of class LINESTRING or MULTILINESTRING, or an sfc geometry list-column object containing these

in case of st_line_merge, x must be an object of class MULTILINESTRING, or an sfc geometry list-column object containing these

st_point_on_surface returns a point guaranteed to be on the (multi)surface.

Examples

Run this code
# NOT RUN {
nc = st_read(system.file("shape/nc.shp", package="sf"))
plot(st_convex_hull(nc))
plot(nc, border = grey(.5))
set.seed(1)
x = st_multipoint(matrix(runif(10),,2))
box = st_polygon(list(rbind(c(0,0),c(1,0),c(1,1),c(0,1),c(0,0))))
if (sf_extSoftVersion()["GEOS"] >= "3.5.0") {
 v = st_sfc(st_voronoi(x, st_sfc(box)))
 plot(v, col = 0, border = 1, axes = TRUE)
 plot(box, add = TRUE, col = 0, border = 1) # a larger box is returned, as documented
 plot(x, add = TRUE, col = 'red', cex=2, pch=16)
 plot(st_intersection(st_cast(v), box)) # clip to smaller box
 plot(x, add = TRUE, col = 'red', cex=2, pch=16)
}
mls = st_multilinestring(list(matrix(c(0,0,0,1,1,1,0,0),,2,byrow=TRUE)))
st_polygonize(st_sfc(mls))
mls = st_multilinestring(list(rbind(c(0,0), c(1,1)), rbind(c(2,0), c(1,1))))
st_line_merge(st_sfc(mls))
plot(nc, axes = TRUE)
plot(st_centroid(nc), add = TRUE, pch = 3)
plot(nc, axes = TRUE)
plot(st_point_on_surface(nc), add = TRUE, pch = 3)
sf = st_sf(a=1, geom=st_sfc(st_linestring(rbind(c(0,0),c(1,1)))), crs = 4326)
seg = st_segmentize(sf, units::set_units(100, km))
seg = st_segmentize(sf, units::set_units(0.01, rad))
nrow(seg$geom[[1]])
# }

Run the code above in your browser using DataCamp Workspace