These functions return the non-coordinate information of a geometry and/or vector. They do not parse an entire geometry/vector and are intended to be very fast even for large vectors.

wk_meta(handleable, ...)

# S3 method for default
wk_meta(handleable, ...)

wk_vector_meta(handleable, ...)

# S3 method for default
wk_vector_meta(handleable, ...)

wk_meta_handler()

wk_vector_meta_handler()

wk_geometry_type_label(geometry_type)

wk_geometry_type(geometry_type_label)

Arguments

handleable

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.

geometry_type

An integer code for the geometry type. These integers follow the WKB specification (e.g., 1 for point, 7 for geometrycollection).

geometry_type_label

A character vector of (lowercase) geometry type labels as would be found in WKT (e.g., point, geometrycollection).

Value

A data.frame with columns:

  • geometry_type: An integer identifying the geometry type. A value of 0 indicates that the types of geometry in the vector are not known without parsing the entire vector.

  • size: For points and linestrings, the number of coordinates; for polygons, the number of rings; for collections, the number of child geometries. A value of zero indicates an EMPTY geometry. A value of NA means this value is unknown without parsing the entire geometry.

  • has_z: TRUE if coordinates contain a Z value. A value of NA means this value is unknown without parsing the entire vector.

  • has_m: TRUE if coordinates contain an M value. A value of NA means this value is unknown without parsing the entire vector.

  • srid: An integer identifying a CRS or NA if this value was not provided.

  • precision: A grid size or 0.0 if a grid size was not provided. Note that coordinate values may not have been rounded; the grid size only refers to the level of detail with which they should be interpreted.

Examples

wk_vector_meta(as_wkt("LINESTRING (0 0, 1 1)"))
#> geometry_type size has_z has_m #> 1 0 1 NA NA
wk_meta(as_wkt("LINESTRING (0 0, 1 1)"))
#> geometry_type size has_z has_m srid precision #> 1 2 NA FALSE FALSE NA 0
wk_meta(as_wkb("LINESTRING (0 0, 1 1)"))
#> geometry_type size has_z has_m srid precision #> 1 2 2 FALSE FALSE NA 0
wk_geometry_type_label(1:7)
#> [1] "point" "linestring" "polygon" #> [4] "multipoint" "multilinestring" "multipolygon" #> [7] "geometrycollection"
wk_geometry_type(c("point", "geometrycollection"))
#> [1] 1 7