Geos
Geos
URL https://paleolimbot.github.io/geos/,
      https://github.com/paleolimbot/geos/
BugReports https://github.com/paleolimbot/geos/issues
LinkingTo libgeos, wk
Config/testthat/edition 3
NeedsCompilation yes
Author Dewey Dunnington [aut, cre] (<https://orcid.org/0000-0002-9415-4582>),
     Edzer Pebesma [aut] (<https://orcid.org/0000-0001-8049-7069>)
Maintainer Dewey Dunnington <dewey@fishandwhistle.net>
Repository CRAN
Date/Publication 2023-11-30 05:50:03 UTC
R topics documented:
         as_geos_geometry.wk_xy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      2
         geos_area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   3
                                                    1
2                                                                                                                     as_geos_geometry.wk_xy
         geos_basic_strtree . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    6
         geos_buffer . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    7
         geos_centroid . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    8
         geos_create_rectangle . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   11
         geos_delaunay_triangles . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   12
         geos_disjoint . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   13
         geos_disjoint_matrix . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   14
         geos_distance . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   15
         geos_empty . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   16
         geos_geometry_n . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   17
         geos_inner_join . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   18
         geos_intersection . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   19
         geos_is_valid . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   21
         geos_largest_empty_circle_spec       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   21
         geos_make_point . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   22
         geos_nearest . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   23
         geos_polygonize . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   24
         geos_project . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   25
         geos_read_wkt . . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   26
         geos_relate . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   27
         geos_segment_intersection . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
         geos_strtree . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   29
         geos_unnest . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
         geos_version . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
         plot.geos_geometry . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
         vctrs-methods . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   32
         wk-methods . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   33
Index 34
    as_geos_geometry.wk_xy
                               Create GEOS Geometry Vectors
Description
     Create GEOS Geometry Vectors
Usage
     ## S3 method for class 'wk_xy'
     as_geos_geometry(x, ...)
     as_geos_geometry(x, ...)
geos_area                                                                                           3
    ## Default S3 method:
    as_geos_geometry(x, ...)
geos_geometry(crs = wk::wk_crs_inherit())
Arguments
    x                  An object to be coerced to a geometry vector
    ...                Unused
    crs                An object that can be interpreted as a CRS. See wk::wk_crs().
Value
    A geos geometry vector
Examples
    as_geos_geometry("LINESTRING (0 1, 3 9)")
Description
    Note that geos_x(), geos_y(), and geos_z() do not handle empty points (use geos_write_xy()
    if you need to handle this case). Similarly, the min/max functions will error on empty geometries.
Usage
    geos_area(geom)
geos_length(geom)
    geos_x(geom)
4                                                                     geos_area
geos_y(geom)
geos_z(geom)
geos_xmin(geom)
geos_ymin(geom)
geos_xmax(geom)
geos_ymax(geom)
geos_minimum_clearance(geom)
geos_is_empty(geom)
geos_is_simple(geom)
geos_is_ring(geom)
geos_has_z(geom)
geos_is_closed(geom)
geos_type_id(geom)
geos_type(geom)
geos_precision(geom)
geos_srid(geom)
geos_num_coordinates(geom)
geos_num_geometries(geom)
geos_num_interior_rings(geom)
geos_num_rings(geom)
geos_dimension(geom)
geos_coordinate_dimension(geom)
geos_is_clockwise(geom)
Arguments
Value
Examples
    geos_area("POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0))")
    geos_length("POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0))")
    geos_x("POINT Z (1 2 3)")
    geos_y("POINT Z (1 2 3)")
    geos_z("POINT Z (1 2 3)")
    geos_xmin("LINESTRING (0 1, 2 3)")
    geos_ymin("LINESTRING (0 1, 2 3)")
    geos_xmax("LINESTRING (0 1, 2 3)")
    geos_ymax("LINESTRING (0 1, 2 3)")
    geos_minimum_clearance("POLYGON ((0 0, 10 0, 10 10, 3 5, 0 10, 0 0))")
Description
     An experimental alternative to the geos_strtree() that provides a more flexible interface and po-
     tentially faster spatial joins. Notably, geos_basic_strtree_insert() uses wk::wk_envelope()
     instead of as_geos_geometry() and does not keep the underlying geometry in memory. For object
     types like wk::xy() with an optimized wk::wk_envelope() method, this is very efficient.
Usage
     geos_basic_strtree(items = NULL, node_capacity = 10L)
geos_basic_strtree_size(tree)
geos_basic_strtree_finalized(tree)
geos_basic_strtree_insert(tree, items)
     geos_basic_strtree_query_filtered(
       tree,
       query,
       tree_geom,
       fun,
       ...,
       .chunk_size = 65536
     )
Arguments
     items             Items to add to the tree index
     node_capacity     The maximum number of child nodes that a node may have. The minimum
                       recommended capacity value is 4. If unsure, use a default node capacity of 10.
     tree              A geos_basic_strtree()
     query             Items with which to query the tree
     limit             The maximum number of matches in the tree to return
     fill              If TRUE, always returns limit matches per item in query padded with NA if
                       fewer than limit matches are found.
     tree_geom         A vctr coercible to geos_geometry() whose indices align with tree.
     fun               A vectorized binary predicate (e.g. geos_intersects()) that will be called
                       with the tree geometry, the query geometry and any ... args passed.
     ...               Passed to fun.
     .chunk_size       The approximate number of comparisons to pass to fun.
geos_buffer                                                                                            7
Value
    A geos_basic_strtree object
Examples
    tree <- geos_basic_strtree(wk::xy(1:5, 1:5))
    geos_basic_strtree_size(tree)
    (geos_basic_strtree_insert(tree, wk::xy(6:10, 6:10)))
    geos_basic_strtree_query(tree, as_geos_geometry("LINESTRING (3 0, 0 3)"))
Description
        • geos_buffer() returns a polygon or multipolygon geometry.
        • geos_offset_curve() returns a linestring offset to the left by distance.
Usage
    geos_buffer(geom, distance, params = geos_buffer_params())
    geos_buffer_params(
      quad_segs = 30,
      end_cap_style = c("round", "flat", "square"),
      join_style = c("round", "mitre", "bevel"),
      mitre_limit = 1,
      single_sided = FALSE
    )
Arguments
    geom               A GEOS geometry vector
    distance           The buffer distance. Can be negative to buffer or offset on the righthand side of
                       the geometry.
    params             A geos_buffer_params()
    quad_segs          The number of segments per quadrant. A higher number here will increase the
                       apparent resolution of the resulting polygon.
    end_cap_style      One of "round", "flat", or "square".
    join_style         One of "round", "mitre", or "bevel".
    mitre_limit        If join_style is "mitre", the relative extent (from zero to one) of the join.
    single_sided       Use TRUE to buffer on only the right side of the geometry. This does not apply
                       to geos_offset_curve(), which is always one-sided.
8                                                                             geos_centroid
Value
     A GEOS geometry vector along the recycled length of geom and distance.
Examples
     geos_buffer("POINT (0 0)", 1)
     geos_offset_curve("LINESTRING (0 0, 0 10, 10 0)", 1)
Description
     Geometry transformers
Usage
     geos_centroid(geom)
geos_boundary(geom)
geos_minimum_width(geom)
geos_minimum_clearance_line(geom)
geos_minimum_rotated_rectangle(geom)
geos_unary_union(geom)
geos_unary_union_prec(geom, grid_size)
geos_coverage_union(geom)
geos_point_on_surface(geom)
geos_node(geom)
     geos_make_valid_params(
       keep_collapsed = TRUE,
       method = c("make_valid_linework", "make_valid_structure")
     )
     geos_unique_points(geom)
geos_centroid                                             9
geos_reverse(geom)
geos_merge_lines(geom)
geos_build_area(geom)
geos_envelope(geom)
geos_envelope_rct(geom)
geos_extent(geom)
geos_convex_hull(geom)
    geos_concave_hull_of_polygons(
      geom,
      ratio,
      is_tight = TRUE,
      allow_holes = FALSE
    )
    geos_polygon_hull_simplify(
      geom,
      ratio,
      hull_type = c("outer", "inner"),
      ratio_mode = c("vertex", "area")
    )
geos_point_start(geom)
geos_point_end(geom)
geos_line_merge(geom)
geos_line_merge_directed(geom)
geos_transform_xy(geom, trans)
geos_clone(geom)
geos_set_srid(geom, srid)
geos_point_n(geom, index)
    geos_simplify(geom, tolerance)
10                                                                                      geos_centroid
geos_remove_repeated_points(geom, tolerance)
geos_simplify_preserve_topology(geom, tolerance)
     geos_set_precision(
       geom,
       grid_size,
       preserve_topology = TRUE,
       keep_collapsed = FALSE
     )
geos_normalize(geom)
geos_densify(geom, tolerance)
geos_clip_by_rect(geom, rect)
Arguments
     geom              A GEOS geometry vector
     grid_size      For _prec() variants, the grid size such that all vertices of the resulting geome-
                    try will lie on the grid.
     make_valid_params
                    A geos_make_valid_params() object.
     keep_collapsed Should items that become EMPTY due to rounding be kept in the output?
     method            The method to use for geos_make_valid(). One of:
                          • "make_valid_linework" combines all rings into a set of noded lines and then
                            extracts valid polygons from that linework.
                          • "make_valid_structure" Structured method, first makes all rings valid then
                            merges shells and subtracts holes from shells to generate valid result. As-
                            sumes that holes and shells are correctly categorized.
     ratio             The normalized ratio between the shape of the concave hull and the area of the
                       return value. Use 1 for the convex hull; use 0 for maximum concave-ness.
     allow_holes       Use TRUE to allow the concave hull to contain holes
     is_tight          Use FALSE to allow concave hull to expand beyond the convex hull.
     hull_type         One of "outer" or "inner".
     ratio_mode        One of "vertex" or "area", describing the normalized proportion type for which
                       ratio represents.
     trans             A wk transform object.
     srid              An integer spatial reference identifier.
     index             The index of the point or geometry to extract.
     tolerance      A minimum distance to use for simplification or densification. Use a higher
                    value for more simplification (or less densification).
     preserve_topology
                    Should topology internal to each feature be preserved?
geos_create_rectangle                                                                            11
    rect                A list() representing rectangles in the form list(xmin, ymin, xmax, ymax).
                        List items with length 1 will be recycled to the length of the longest item.
Value
Examples
Description
Usage
Arguments
Value
     geos_delaunay_triangles
                            Delaunay triagulations and Voronoi diagrams
Description
      These functions return one triangulation/diagram per feature as a multi geometry. These functions
      are not vectorized along their parameters.
Usage
geos_delaunay_triangles(geom, tolerance = 0)
geos_constrained_delaunay_triangles(geom)
geos_delaunay_edges(geom, tolerance = 0)
Arguments
Value
Examples
    geos_delaunay_triangles("MULTIPOINT (0 0, 1 0, 0 1)")
    geos_delaunay_edges("MULTIPOINT (0 0, 1 0, 0 1)")
    geos_voronoi_polygons("MULTIPOINT (0 0, 1 0, 0 1)")
    geos_voronoi_edges("MULTIPOINT (0 0, 1 0, 0 1)")
Description
    Binary predicates
Usage
    geos_disjoint(geom1, geom2)
geos_touches(geom1, geom2)
geos_intersects(geom1, geom2)
geos_crosses(geom1, geom2)
geos_within(geom1, geom2)
geos_contains(geom1, geom2)
geos_overlaps(geom1, geom2)
geos_equals(geom1, geom2)
geos_covers(geom1, geom2)
geos_covered_by(geom1, geom2)
geos_prepared_disjoint(geom1, geom2)
geos_prepared_touches(geom1, geom2)
geos_prepared_intersects(geom1, geom2)
    geos_prepared_crosses(geom1, geom2)
14                                                                                geos_disjoint_matrix
geos_prepared_within(geom1, geom2)
geos_prepared_contains(geom1, geom2)
geos_prepared_contains_properly(geom1, geom2)
geos_prepared_overlaps(geom1, geom2)
geos_prepared_covers(geom1, geom2)
geos_prepared_covered_by(geom1, geom2)
Arguments
      geom1, geom2        GEOS geometry vectors, recycled to a common length.
      tolerance           The maximum separation of vertices that should be considered equal.
Value
      A logical vector along the recycled length of geom1 and geom2
Description
      Matrix predicates
Usage
      geos_disjoint_matrix(geom, tree)
geos_touches_matrix(geom, tree)
geos_intersects_matrix(geom, tree)
geos_crosses_matrix(geom, tree)
geos_within_matrix(geom, tree)
geos_contains_matrix(geom, tree)
geos_contains_properly_matrix(geom, tree)
geos_overlaps_matrix(geom, tree)
      geos_equals_matrix(geom, tree)
geos_distance                                                                                   15
geos_covers_matrix(geom, tree)
geos_covered_by_matrix(geom, tree)
geos_disjoint_any(geom, tree)
geos_touches_any(geom, tree)
geos_intersects_any(geom, tree)
geos_crosses_any(geom, tree)
geos_within_any(geom, tree)
geos_contains_any(geom, tree)
geos_contains_properly_any(geom, tree)
geos_overlaps_any(geom, tree)
geos_equals_any(geom, tree)
geos_covers_any(geom, tree)
geos_covered_by_any(geom, tree)
Arguments
    geom              A GEOS geometry vector
    tree              A geos_strtree()
    tolerance         The maximum separation of vertices that should be considered equal.
Value
    A list() of integer vectors containing the indices of tree for which the predicate would return
    TRUE.
Description
      Distance calculations
Usage
      geos_distance(geom1, geom2)
geos_prepared_distance(geom1, geom2)
geos_distance_indexed(geom1, geom2)
Arguments
      geom1, geom2       GEOS geometry vectors, recycled to a common length.
      densify            A fraction between 0 and 1 denoting the degree to which edges should be sub-
                         divided (smaller value means more subdivisions). Use NULL to calculate the
                         distance as-is.
      distance           A threshold distance, below which geos_is_within_distance() and geos_prepared_is_within_dist
                         will return TRUE.
Value
      A numeric vector along the recycled length of geom1 and geom2
Description
      Create empty geometries
Usage
      geos_empty(type_id = "geometrycollection", crs = wk::wk_crs_inherit())
as_geos_type_id(type_id)
      ## Default S3 method:
geos_geometry_n                                                                                17
as_geos_type_id(type_id)
Arguments
    type_id           The numeric type identifier for which an empty should be returned, an object
                      from which one can be extracted using as_geos_type_id() (default to calling
                      geos_type_id()). This is most usefully a character vector with the geometry
                      type (e.g., point, linestring, polygon).
    crs               An object that can be interpreted as a CRS. See wk::wk_crs().
Value
    A GEOS geometry vector.
Examples
    geos_empty(c("point", "linestring", "polygon"))
    geos_empty(1:7)
    geos_empty(geos_read_wkt(c("POINT (0 1)", "LINESTRING (0 0, 1 1)")))
Description
    Access child geometries
Usage
    geos_geometry_n(geom, n)
geos_ring_n(geom, n)
Arguments
    geom              A GEOS geometry vector
    n                 The (one-based) index of the child geometry
Value
    A GEOS geometry vector along the recycled length of geom and i.
18                                                                                        geos_inner_join
Examples
      multipoint <- "MULTIPOINT (0 0, 1 1, 2 2)"
      geos_geometry_n(multipoint, seq_len(geos_num_geometries(multipoint)))
      poly <- "POLYGON ((0 0, 0 1, 1 0, 0 0), (0.1 0.1, 0.1 0.2, 0.2 0.1, 0.1 0.1))"
      geos_ring_n(poly, seq_len(geos_num_rings(poly)))
Description
      Experimental low-level spatial join infrastructure based on the geos_basic_strtree().
Usage
      geos_inner_join(
        x,
        y,
        predicate = "intersects",
        distance = NA,
        suffix = c(".x", ".y")
      )
Arguments
      x, y              Geometry vectors with a wk::wk_handle() method.
      predicate         One of:
                          • intersects
                          • contains
                          • contains_properly
                          • covered_by
                          • covers
                          • crosses
                          • equals
                          • equals_exact
                          • intersects
                          • within_distance
                          • overlaps
                          • touches
      distance          Passed to geos_is_within_distance() when predicate is "within_distance";
                        passed to geos_equals_exact() when predicate is "equals_exact.
      suffix            A character vector of length 2 with suffixes for the left and right sides for output
                        columns with duplicated names.
geos_intersection                                                                              19
Value
    A data.frame with columns x and y corresponding to the 1-based indices on pairs of x and y for
    which predicate is TRUE.
Examples
    x <- data.frame(
      col_x = "a",
      geometry = as_geos_geometry("POINT (10 10)")
    )
    y <- data.frame(
      col_y = "a",
      geometry = as_geos_geometry("POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))")
    )
geos_inner_join(x, y, "intersects")
    geos_inner_join_keys(
      "POINT (5 5)",
      "POLYGON ((0 0, 0 10, 10 10, 10 0, 0 0))",
      "intersects"
    )
Description
        • geos_intersection() returns the set of points common to both x and y.
        • geos_difference() returns the set of points from x that are not contained by y.
        • geos_sym_difference() returns the set of points that are not common to x and y.
        • geos_union() returns the set of points contained by either x or y.
        • geos_shared_paths() returns a GEOMETRYCOLLECTION containing two MULTILINESTRINGS:
          the first containing paths in the same direction, the second containing common paths in the
          opposite direction.
        • geos_snap() snaps the vertices of x within tolerance of y to y.
Usage
    geos_intersection(geom1, geom2)
geos_difference(geom1, geom2)
    geos_sym_difference(geom1, geom2)
20                                                                                    geos_intersection
geos_union(geom1, geom2)
geos_shared_paths(geom1, geom2)
Arguments
Value
A GEOS geometry vector along the recycled length of geom1 and geom2.
Examples
     geos_intersection(poly1, poly2)
     geos_difference(poly1, poly2)
     geos_sym_difference(poly1, poly2)
     geos_union(poly1, poly2)
Description
        • geos_is_valid() returns a logical vector denoting if each feature is a valid geometry.
        • geos_is_valid_detail() returns a data frame with columns is_valid (logical), reason
          (character), and location (geos_geometry).
Usage
    geos_is_valid(geom)
Arguments
    geom           A GEOS geometry vector
    allow_self_touching_ring_forming_hole
                   It’s all in the name
Examples
    geos_is_valid(
      c(
        "POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))",
        "POLYGON ((0 0, 1 1, 1 0, 0 1, 0 0))"
      )
    )
    geos_is_valid_detail(
      c(
        "POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))",
        "POLYGON ((0 0, 1 1, 1 0, 0 1, 0 0))"
      )
    )
  geos_largest_empty_circle_spec
                         Circular approximations
Description
    Circular approximations
22                                                                                    geos_make_point
Usage
      geos_largest_empty_circle_spec(geom, boundary, tolerance)
geos_minimum_bounding_circle(geom)
geos_minimum_bounding_crc(geom)
geos_maximum_inscribed_circle_spec(geom, tolerance)
geos_maximum_inscribed_crc(geom, tolerance)
Arguments
      geom             A GEOS geometry vector
      boundary         An outer boundary for the largest empty circle algorithm.
      tolerance        Threshold for considering circles to be touching a boundary.
Description
      These functions transform raw coordinates into point, line, polygon, features, or nest a vector of ge-
      ometries into a MULTI* type or GEOMETRYCOLLECTION. See wk::wk_coords(), geos_unnest(),
      or wk::wk_flatten() to perform inverse operations; see wk::xy(), wk::wk_linestring(), wk::wk_polygon(),
      or wk::wk_collection() for generic versions that work with non-GEOS types.
Usage
      geos_make_point(x, y, z = NA_real_, crs = NULL)
      geos_make_polygon(
        x,
        y,
        z = NA_real_,
        feature_id = 1L,
        ring_id = 1L,
        crs = NULL
      )
Arguments
    x, y, z         Vectors of coordinate values
    crs             An object that can be interpreted as a CRS. See wk::wk_crs().
    feature_id, ring_id
                    Vectors for which a change in sequential values indicates a new feature or ring.
                    Use factor() to convert from a character vector.
    geom            A GEOS geometry vector
    type_id         The numeric type identifier for which an empty should be returned, an object
                    from which one can be extracted using as_geos_type_id() (default to calling
                    geos_type_id()). This is most usefully a character vector with the geometry
                    type (e.g., point, linestring, polygon).
Value
    A GEOS geometry vector
Examples
    geos_make_point(1:3, 1:3)
    geos_make_linestring(1:3, 1:3)
    geos_make_polygon(c(0, 1, 0), c(0, 0, 1))
    geos_make_collection("POINT (1 1)")
Description
    Finds the closest item index in tree to geom, vectorized along geom.
Usage
    geos_nearest(geom, tree)
geos_nearest_indexed(geom, tree)
Arguments
    geom               A GEOS geometry vector
    tree               A geos_strtree()
    densify            A fraction between 0 and 1 denoting the degree to which edges should be sub-
                       divided (smaller value means more subdivisions). Use NULL to calculate the
                       distance as-is.
24                                                                                        geos_polygonize
Value
An integer vector of length geom containing the index of tree that is closest to each feature in geom.
Description
Usage
geos_polygonize(collection)
geos_polygonize_valid(collection)
geos_polygonize_cut_edges(collection)
geos_polygonize_full(collection)
Arguments
Value
A GEOMETRYCOLLECTION of polygons
Examples
Description
Usage
geos_project(geom1, geom2)
geos_project_normalized(geom1, geom2)
geos_interpolate(geom, distance)
geos_interpolate_normalized(geom, distance_normalized)
Arguments
Examples
    geos_interpolate("LINESTRING (0 0, 1 1)", 1)
    geos_interpolate_normalized("LINESTRING (0 0, 1 1)", 1)
Description
      Read and write well-known text
Usage
      geos_read_wkt(wkt, fix_structure = FALSE, crs = NULL)
      geos_write_wkb(
        geom,
        include_z = TRUE,
        include_srid = FALSE,
        endian = 1,
        flavor = c("extended", "iso")
      )
      geos_write_hex(
        geom,
        include_z = TRUE,
        include_srid = FALSE,
        endian = 1,
        flavor = c("extended", "iso")
      )
geos_read_xy(point)
geos_write_xy(geom)
Arguments
      wkt               a character() vector of well-known text
      fix_structure     Set the reader to automatically repair structural errors in the input (currently just
                        unclosed rings) while reading.
geos_relate                                                                                       27
Examples
    geos_read_wkt("POINT (30 10)")
    geos_write_wkt(geos_read_wkt("POINT (30 10)"))
Description
    See the Wikipedia entry on DE-9IM for how to interpret pattern, match, and the result of geos_relate()
    and/or geos_relate_pattern_create().
Usage
    geos_relate(geom1, geom2, boundary_node_rule = "mod2")
geos_relate_pattern_match(match, pattern)
    geos_relate_pattern_create(
      II = "*",
      IB = "*",
      IE = "*",
      BI = "*",
28                                                                            geos_segment_intersection
          BB   =   "*",
          BE   =   "*",
          EI   =   "*",
          EB   =   "*",
          EE   =   "*"
      )
Arguments
      geom1, geom2   GEOS geometry vectors, recycled to a common length.
      boundary_node_rule
                     One of "mod2", "endpoint", "multivalent_endpoint", or "monovalent_endpoint".
      pattern, match A character vector representing the match
      II, IB, IE, BI, BB, BE, EI, EB, EE
                       One of "0", "1", "2", "T", "F", or "*" describing the dimension of the intersection
                       between the interior (I), boundary (B), and exterior (E).
Examples
      geos_relate_pattern_match("FF*FF1***", c(NA, "FF*FF****", "FF*FF***F"))
      geos_relate("POINT (0 0)", "POINT (0 0)")
      geos_relate_pattern("POINT (0 0)", "POINT (0 0)", "T********")
      geos_relate_pattern_create(II = "T")
     geos_segment_intersection
                            Segment operations
Description
      Segment operations
Usage
      geos_segment_intersection(a, b)
geos_orientation_index(a, point)
Arguments
      a, b                A list() representing segments in the form list(x0, y0, x1, y1). List items
                          with length 1 will be recycled to the length of the longest item.
      point               A list() representing points in the form list(x, y).
geos_strtree                                                                                              29
Value
Examples
    geos_segment_intersection(
      list(0, 0, 10, 10),
      list(10, 0, 0, 10)
    )
    geos_orientation_index(
      list(0, 0, 10, 10),
      list(15, c(12, 15, 17))
    )
Description
Usage
geos_strtree_query(tree, geom)
geos_strtree_data(tree)
as_geos_strtree(x, ...)
    ## Default S3 method:
    as_geos_strtree(x, ...)
Arguments
      geom               A GEOS geometry vector
      node_capacity      The maximum number of child nodes that a node may have. The minimum
                         recommended capacity value is 4. If unsure, use a default node capacity of 10.
      tree               A geos_strtree()
      x                  An object to convert to a geos_strtree()
      ...                Unused
Value
      A geos_str_tree object
Description
      Ths function flattens nested geometries (i.e., multi or geometrycollection types) into a vector with
      the same or fewer levels of nesting. See geos_geometry_n() to access individual geometries within
      a collection; see wk::wk_flatten() for a version of this function that works with non-GEOS
      geometries; see geos_make_collection() and wk::wk_collection() for functions that perform
      the inverse operation.
Usage
      geos_unnest(geom, keep_empty = FALSE, keep_multi = TRUE, max_depth = 1)
Arguments
      geom               A GEOS geometry vector
      keep_empty         If TRUE, EMPTY geomtries are left as-is rather than collapsing to length 0.
      keep_multi         If TRUE, MULTI* geometries are not expanded to sub-features (i.e., only GE-
                         OMETRYCOLLECTIONs are).
      max_depth          The maximum recursive GEOMETRYCOLLECTION depth to unnest.
Value
      A GEOS geometry vector, with a length greater than or equal to geom with an attribute "lengths"
      that can be used to map elements of the result to the original item.
Examples
      geos_unnest("GEOMETRYCOLLECTION (POINT (1 2), POINT (3 4))")
geos_version                                                                                   31
Description
    GEOS version information
Usage
    geos_version(runtime = TRUE)
Arguments
    runtime          Use FALSE to return the build-time GEOS version, which may be different than
                     the runtime version if a different version of the libgeos package was used to
                     build this package.
Examples
    geos_version()
    geos_version(runtime = FALSE)
Description
    Plot GEOS geometries
Usage
    ## S3 method for class 'geos_geometry'
    plot(
      x,
      ...,
      asp = 1,
      bbox = NULL,
      xlab = "",
      ylab = "",
      rule = "evenodd",
      add = FALSE,
      simplify = 1,
      crop = TRUE
    )
32                                                                                       vctrs-methods
Arguments
      x                  A GEOS geometry vector
      ...                Passed to plotting functions for features: graphics::points() for point and
                         multipoint geometries, graphics::lines() for linestring and multilinestring
                         geometries, and graphics::polypath() for polygon and multipolygon geome-
                         tries.
      asp, xlab, ylab Passed to graphics::plot()
      bbox               The limits of the plot as a rct() or compatible object
      rule               The rule to use for filling polygons (see graphics::polypath())
      add                Should a new plot be created, or should handleable be added to the existing
                         plot?
      simplify           A relative tolerance to use for simplification of geometries. Use 0 to disable
                         simplification; use a higher number to make simplification coarser.
      crop               Use TRUE to crop the input to the extent of the plot.
Value
      The input, invisibly
Examples
      plot(as_geos_geometry("LINESTRING (0 0, 1 1)"))
      plot(as_geos_geometry("POINT (0.5 0.4)"), add = TRUE)
Description
      Vctrs methods
Usage
      vec_cast.geos_geometry(x, to, ...)
vec_ptype2.geos_geometry(x, y, ...)
Arguments
      x, y, to, ...      See vctrs::vec_cast() and vctrs::vec_ptype2().
wk-methods                                                                                 33
Description
    Compatibility with the wk package
Usage
    ## S3 method for class 'geos_geometry'
    wk_handle(handleable, handler, ...)
geos_geometry_writer()
Arguments
    handleable        A geometry vector (e.g., wkb(), wkt(), xy(), rct(), or sf::st_sfc()) for
                      which wk_handle() is defined.
    handler           A wk_handler object.
    ...               Passed to the wk_handle() method.
Value
    The result of the handler
Examples
    library(wk)
    wk_handle(as_geos_geometry("POINT (1 2)"), wk::wkt_writer())
Index
as_geos_geometry                                 geos_concave_hull_of_polygons
        (as_geos_geometry.wk_xy), 2                      (geos_centroid), 8
as_geos_geometry(), 6                            geos_constrained_delaunay_triangles
as_geos_geometry.wk_xy, 2                                (geos_delaunay_triangles), 12
as_geos_strtree (geos_strtree), 29               geos_contains (geos_disjoint), 13
as_geos_type_id (geos_empty), 16                 geos_contains_any
as_geos_type_id(), 17, 23                                (geos_disjoint_matrix), 14
                                                 geos_contains_matrix
factor(), 23                                             (geos_disjoint_matrix), 14
                                                 geos_contains_properly_any
GEOS geometry vector, 5, 7, 8, 10–12, 15,                (geos_disjoint_matrix), 14
        17, 20–23, 25, 27, 30, 32                geos_contains_properly_matrix
GEOS geometry vectors, 14, 16, 20, 25, 28                (geos_disjoint_matrix), 14
geos_area, 3                                     geos_convex_hull (geos_centroid), 8
geos_basic_strtree, 6                            geos_coordinate_dimension (geos_area), 3
geos_basic_strtree(), 6, 18                      geos_coverage_union (geos_centroid), 8
geos_basic_strtree_finalized                     geos_covered_by (geos_disjoint), 13
        (geos_basic_strtree), 6                  geos_covered_by_any
geos_basic_strtree_insert                                (geos_disjoint_matrix), 14
        (geos_basic_strtree), 6                  geos_covered_by_matrix
geos_basic_strtree_insert(), 6                           (geos_disjoint_matrix), 14
geos_basic_strtree_query                         geos_covers (geos_disjoint), 13
        (geos_basic_strtree), 6                  geos_covers_any (geos_disjoint_matrix),
geos_basic_strtree_query_filtered                        14
        (geos_basic_strtree), 6                  geos_covers_matrix
geos_basic_strtree_size                                  (geos_disjoint_matrix), 14
        (geos_basic_strtree), 6                  geos_create_rectangle, 11
geos_boundary (geos_centroid), 8                 geos_crosses (geos_disjoint), 13
geos_buffer, 7                                   geos_crosses_any
geos_buffer(), 7                                         (geos_disjoint_matrix), 14
geos_buffer_params (geos_buffer), 7              geos_crosses_matrix
geos_buffer_params(), 7                                  (geos_disjoint_matrix), 14
geos_build_area (geos_centroid), 8               geos_delaunay_edges
geos_centroid, 8                                         (geos_delaunay_triangles), 12
geos_clearance_line_between                      geos_delaunay_triangles, 12
        (geos_intersection), 19                  geos_densify (geos_centroid), 8
geos_clip_by_rect (geos_centroid), 8             geos_difference (geos_intersection), 19
geos_clone (geos_centroid), 8                    geos_difference(), 19
geos_concave_hull (geos_centroid), 8             geos_difference_prec
                                            34
INDEX                                                                         35
        21                                          (geos_disjoint), 13
geos_minimum_bounding_crc                   geos_prepared_covered_by
        (geos_largest_empty_circle_spec),           (geos_disjoint), 13
        21                                  geos_prepared_covers (geos_disjoint), 13
geos_minimum_clearance (geos_area), 3       geos_prepared_crosses (geos_disjoint),
geos_minimum_clearance_line                         13
        (geos_centroid), 8                  geos_prepared_disjoint (geos_disjoint),
geos_minimum_rotated_rectangle                      13
        (geos_centroid), 8                  geos_prepared_distance (geos_distance),
geos_minimum_width (geos_centroid), 8               15
geos_nearest, 23                            geos_prepared_intersects
geos_nearest_frechet (geos_nearest), 23             (geos_disjoint), 13
geos_nearest_hausdorff (geos_nearest),      geos_prepared_is_within_distance
        23                                          (geos_distance), 15
geos_nearest_indexed (geos_nearest), 23     geos_prepared_is_within_distance(), 16
geos_node (geos_centroid), 8                geos_prepared_overlaps (geos_disjoint),
geos_normalize (geos_centroid), 8                   13
geos_num_coordinates (geos_area), 3         geos_prepared_touches (geos_disjoint),
geos_num_geometries (geos_area), 3                  13
geos_num_interior_rings (geos_area), 3      geos_prepared_within (geos_disjoint), 13
geos_num_rings (geos_area), 3               geos_project, 25
geos_offset_curve (geos_buffer), 7          geos_project(), 25
geos_offset_curve(), 7                      geos_project_normalized (geos_project),
geos_orientation_index                              25
        (geos_segment_intersection), 28     geos_project_normalized(), 25
geos_orientation_index(), 29                geos_read_geojson (geos_read_wkt), 26
geos_overlaps (geos_disjoint), 13           geos_read_hex (geos_read_wkt), 26
geos_overlaps_any                           geos_read_wkb (geos_read_wkt), 26
        (geos_disjoint_matrix), 14          geos_read_wkt, 26
geos_overlaps_matrix                        geos_read_xy (geos_read_wkt), 26
        (geos_disjoint_matrix), 14          geos_relate, 27
geos_point_end (geos_centroid), 8           geos_relate(), 27
geos_point_n (geos_centroid), 8             geos_relate_pattern (geos_relate), 27
geos_point_on_surface (geos_centroid), 8    geos_relate_pattern_create
geos_point_start (geos_centroid), 8                 (geos_relate), 27
geos_polygon_hull_simplify                  geos_relate_pattern_create(), 27
        (geos_centroid), 8                  geos_relate_pattern_match
geos_polygonize, 24                                 (geos_relate), 27
geos_polygonize_cut_edges                   geos_remove_repeated_points
        (geos_polygonize), 24                       (geos_centroid), 8
geos_polygonize_full (geos_polygonize),     geos_reverse (geos_centroid), 8
        24                                  geos_ring_n (geos_geometry_n), 17
geos_polygonize_valid                       geos_segment_intersection, 28
        (geos_polygonize), 24               geos_segment_intersection(), 29
geos_precision (geos_area), 3               geos_set_precision (geos_centroid), 8
geos_prepared_contains (geos_disjoint),     geos_set_srid (geos_centroid), 8
        13                                  geos_shared_paths (geos_intersection),
geos_prepared_contains_properly                     19
INDEX                                                                           37
geos_shared_paths(), 19                    geos_write_xy(), 3
geos_simplify (geos_centroid), 8           geos_x (geos_area), 3
geos_simplify_preserve_topology            geos_x(), 3
        (geos_centroid), 8                 geos_xmax (geos_area), 3
geos_snap (geos_intersection), 19          geos_xmin (geos_area), 3
geos_snap(), 19                            geos_y (geos_area), 3
geos_srid (geos_area), 3                   geos_y(), 3
geos_strtree, 29                           geos_ymax (geos_area), 3
geos_strtree(), 6, 15, 23, 30              geos_ymin (geos_area), 3
geos_strtree_data (geos_strtree), 29       geos_z (geos_area), 3
geos_strtree_query (geos_strtree), 29      geos_z(), 3
geos_sym_difference                        graphics::lines(), 32
        (geos_intersection), 19            graphics::plot(), 32
geos_sym_difference(), 19                  graphics::points(), 32
geos_sym_difference_prec                   graphics::polypath(), 32
        (geos_intersection), 19
                                           libgeos package, 31
geos_touches (geos_disjoint), 13
geos_touches_any                           plot.geos_geometry, 31
        (geos_disjoint_matrix), 14
geos_touches_matrix                        rct(), 32, 33
        (geos_disjoint_matrix), 14
geos_transform_xy (geos_centroid), 8       sf::st_sfc(), 33
geos_type (geos_area), 3
geos_type_id (geos_area), 3                vctrs-methods, 32
geos_type_id(), 17, 23                     vctrs::vec_cast(), 32
geos_unary_union (geos_centroid), 8        vctrs::vec_ptype2(), 32
                                           vec_cast.geos_geometry (vctrs-methods),
geos_unary_union_prec (geos_centroid), 8
                                                   32
geos_union (geos_intersection), 19
                                           vec_ptype2.geos_geometry
geos_union(), 19
                                                   (vctrs-methods), 32
geos_union_prec (geos_intersection), 19
geos_unique_points (geos_centroid), 8      wk transform, 10
geos_unnest, 30                            wk-methods, 33
geos_unnest(), 22                          wk::wk_bbox(), 5
geos_version, 31                           wk::wk_collection(), 22, 30
geos_voronoi_edges                         wk::wk_coords(), 22
        (geos_delaunay_triangles), 12      wk::wk_crs(), 3, 12, 17, 23, 27
geos_voronoi_polygons                      wk::wk_envelope(), 6
        (geos_delaunay_triangles), 12      wk::wk_flatten(), 22, 30
geos_within (geos_disjoint), 13            wk::wk_handle(), 18
geos_within_any (geos_disjoint_matrix),    wk::wk_linestring(), 22
        14                                 wk::wk_polygon(), 22
geos_within_matrix                         wk::xy(), 6, 22
        (geos_disjoint_matrix), 14         wk_handle(), 33
geos_write_geojson (geos_read_wkt), 26     wk_handle.geos_geometry (wk-methods), 33
geos_write_hex (geos_read_wkt), 26         wk_handler, 33
geos_write_wkb (geos_read_wkt), 26         wk_writer.geos_geometry (wk-methods), 33
geos_write_wkt (geos_read_wkt), 26         wkb(), 33
geos_write_xy (geos_read_wkt), 26          wkt(), 33
38         INDEX
xy(), 33