These functions provide ways to extract individual coordinate values.
Whereas wk_vertices()
returns a vector of coordinates as in the same
format as the input, wk_coords()
returns a data frame with coordinates
as columns.
wk_vertices(handleable, ...)
wk_coords(handleable, ...)
wk_coords(handleable, use_z = NA, use_m = NA) <- value
wk_vertex_filter(handler, add_details = FALSE)
A geometry vector (e.g., wkb()
, wkt()
, xy()
,
rct()
, or sf::st_sfc()
) for which wk_handle()
is defined.
Passed to the wk_handle()
method.
Used to declare the output type. Use TRUE
to
ensure the output has that dimension, FALSE
to ensure it does not,
and NA
to leave the dimension unchanged.
An xy()
, xyz()
, xym()
, or xyzm()
of coordinates
used to replace values in the input. Use NA
to keep the existing
value.
A wk_handler object.
Use TRUE
to add a "wk_details" attribute, which
contains columns feature_id
, part_id
, and ring_id
.
wk_vertices()
extracts vertices and returns the in the same format as
the handler
wk_coords()
returns a data frame with columns columns feature_id
(the index of the feature from whence it came), part_id
(an arbitrary
integer identifying the point, line, or polygon from whence it came),
ring_id
(an arbitrary integer identifying individual rings within
polygons), and one column per coordinate (x
, y
, and/or z
and/or m
).
wk_coords<-
is the replacement-function version of 'wk_coords'.
Using the engine of wk_trans_explicit()
the coordinates of an object
can be transformed in a generic way using R functions as needed.
wk_vertices(wkt("LINESTRING (0 0, 1 1)"))
#> <wk_wkt[2]>
#> [1] POINT (0 0) POINT (1 1)
wk_coords(wkt("LINESTRING (0 0, 1 1)"))
#> feature_id part_id ring_id x y
#> 1 1 1 0 0 0
#> 2 1 1 0 1 1
# wk_coords() replacement function
x <- xy(1:5, 1:5)
y <- as_wkt(x)
wk_coords(y) <- cbind(5:1, 0:4)
wk_coords(x) <- y[5:1]
y
#> <wk_wkt[5]>
#> [1] POINT (5 0) POINT (4 1) POINT (3 2) POINT (2 3) POINT (1 4)
x
#> <wk_xy[5]>
#> [1] (1 4) (2 3) (3 2) (4 1) (5 0)