as.data.frame()
for s2_cell()
to comply with new wk
version and the latest release of R (#207).#include <cstdint>
to an Abseil header to fix compilation with
gcc13 (#209, #210).s2_convex_hull()
and s2_convex_hull_agg()
(@spiry34, #150,
#151, #163).max_distance
argument to s2_closest_edges()
, making
distance-constrained k-nearest neighbours possible (#125, #156, #162).s2_point_on_surface()
implementation for polygons
(@kylebutts, #152, #161)s2_cell_union()
vector class to represent cell coverings and
operators to generate them from an s2 geography vector (e.g.,
s2_covering_cell_ids()
). Cell unions are useful as compact representations
of spherical geometry and can be used like a bounding box to determine
a possible intersection with one or more geographies (#85, #94, #164).s2_union_agg()
more efficient using a recursive merge strategy
(#103, #165).-O0
(#167, #172).s2_prepared_dwithin()
and fixed s2_dwithin_matrix()
such that it
efficiently uses the index (#157, #174).s2_lnglat()
and s2_point()
to use wk::xy()
(a record-style
vctr) to represent point coordinates. This is much faster than the previous
representation which relied on list()
of external pointers (#181, #159).planar
and tessellate_tol_m
to s2_as_text()
,
s2_as_binary()
. Use planar = TRUE
and set tessellate_tol_m
to the
maximum error for your use-case to automatically subdivide edges to
preserve or "straight" lines in Plate carree projection on import (#182).planar
and tessellate_tol_m
to s2_geog_from_text()
, and
s2_geog_from_wkb()
. Use planar = TRUE
and set tessellate_tol_m
to the
maximum error for your use-case to automatically subdivide edges to
ensure or "straight" lines in Plate carree projection on export (#182).STRICT_R_HEADERS
(@eddelbuettel, #118).s2_centroid_agg()
did not
behave like a normal point in distance calculations (#119, #121).s2_projection_filter()
and s2_unprojection_filter()
to
expose the S2 edge tessellator, which can be used to make Cartesian
or great circle assumptions of line segments explicit by adding
points where necessary (#115).s2_cell()
vector class to expose a subset of the S2
indexing system to R users (#85, #114).s2_closest_edges()
to make k-nearest neighbours calculation
possible on the sphere (#111, #112).s2_interpolate()
, s2_interpolate_normalized()
,
s2_project()
, and s2_project_normalized()
to provide linear
referencing support on the sphere (#96, #110).dimensions
to s2_options()
to constrain the
output dimensions of a boolean or rebuild operation (#105, #104, #110).s2_is_valid()
and s2_is_valid_detail()
to help find invalid
spherical geometries when importing data into S2 (#100).s2_union()
can now handle MULTIPOLYGON
geometries with overlapping rings in addition to other invalid
polygons. s2_union()
can now sanitize
almost any input to be valid spherical geometry with
minimal modification (#100, #99).s2_union_agg()
to
s2_coverage_union_agg()
to make clear that the function only
works when the individual geometries do not have overlapping
interiors. s2_union_agg()
was replaced with a
true aggregate union that can handle unions of most geometries
(#100, #97).s2_rebuild_agg()
to match s2_union_agg()
. Like
s2_rebuild()
, s2_rebuild_agg()
collects the edges in the input
and builds them into a feature, optionally snapping or simplifying
vertices in the process (#100).s2_options()
, which now uses strings
rather than numeric codes to specify boolean operation options, geography
construction options, and builder options (#70).s2_rebuild()
and s2_simplify()
, which wrap the S2 C++ S2Builder
class to provide simplification and fixing of invalid geographies (#70).s2_latlng()
to s2_lnglat()
to keep axis order consistent
throughout the package (#69).s2_bounds_cap()
and s2_bounds_rect()
to compute bounding areas
using geographic coordinates (@edzer, #63).s2_*_matrix()
predicates now efficiently use indexing to compute the
results of many predicate comparisons (#61).This version is a complete rewrite of the former s2 CRAN package, entirely backwards incompatible with previous versions.