These functions are optimised for graphics output, which in R require flat coordinate structures. See graphics::points(), graphics::lines(), and graphics::polypath() for how to send these to a graphics device, or grid::pointsGrob(), grid::linesGrob(), and grid::pathGrob() for how to create graphical objects using this output.

wkb_coords(wkb, sep_na = FALSE)

wkt_coords(wkt, sep_na = FALSE)

Arguments

wkb

A list() of raw() vectors, such as that returned by sf::st_as_binary().

sep_na

Use TRUE to separate geometries and linear rings with a row of NAs. This is useful for generating output that can be fed directly to graphics::polypath() or graphics::lines() without modification.

wkt

A character vector containing well-known text.

Value

A data.frame with columns:

  • feature_id: The index of the top-level feature

  • part_id: The part identifier, guaranteed to be unique for every simple geometry (including those contained within a multi-geometry or collection)

  • ring_id: The ring identifier, guaranteed to be unique for every ring.

  • x, y, z, m: Coordinaate values (both absence and nan are recorded as NA)

Examples

text <- c("LINESTRING (0 1, 19 27)", "LINESTRING (-1 -1, 4 10)")
wkt_coords(text)
#> # A tibble: 4 × 7
#>   feature_id part_id ring_id     x     y     z     m
#>        <int>   <int>   <int> <dbl> <dbl> <dbl> <dbl>
#> 1          1       1       0     0     1    NA    NA
#> 2          1       1       0    19    27    NA    NA
#> 3          2       2       0    -1    -1    NA    NA
#> 4          2       2       0     4    10    NA    NA
wkt_coords(text, sep_na = TRUE)
#> # A tibble: 5 × 7
#>   feature_id part_id ring_id     x     y     z     m
#>        <int>   <int>   <int> <dbl> <dbl> <dbl> <dbl>
#> 1          1       1       0     0     1    NA    NA
#> 2          1       1       0    19    27    NA    NA
#> 3         NA      NA      NA    NA    NA    NA    NA
#> 4          2       2       0    -1    -1    NA    NA
#> 5          2       2       0     4    10    NA    NA