Log message:
(geography/R-wk) Updated 0.6.0 to 0.9.4
# wk 0.9.4
- Ensure package tests pass against sf 1.0-18 (#224, #225).
# wk 0.9.3
- Ensure package compiles with `STRICT_R_HEADERS=1` (#222).
# wk 0.9.2
- Add `wk_crs()` and `wk_set_crs()` methods for `bbox` (#213)
- Fix wk_trans inconsistent meta flags handling (#217)
- Ensure package builds on arm64 for Windows (#220)
# wk 0.9.1
- Fix format strings/arguments for R-devel (#209).
# wk 0.9.0
## Breaking changes
- The common well-known binary representation of POINT EMPTY (i.e.,
POINT (nan nan)) is now handled as POINT EMPTY allowing empty points
to roundtrip through `wkb()` vectors (#196, #204).
- `xy(NA, NA)` is now read as a null feature instead of POINT EMPTY. This
preserves the invariant that null features can also be identified using
`is.na()` (#205).
- `xy(NaN, NaN)` is now read as POINT EMPTY and `is.na(xy(NaN, NaN))`
now returns `FALSE`. This means that both EMPTY and null points can roundtrip
through `xy()` (#205).
## Bugfixes and improvements
- `wk_meta()` now contains a new column `is_empty`, which is `TRUE`
for any feature that contains at least one non-empty coordinate. This allows
more efficient detection of features with zero coordinates (#197, #199).
- Updated PROJ data to use the latest pull of the database packaged with
PROJ 9.3.0 (#201).
- The wk package now compiles once again on gcc 4.8 (#203, #206).
- Fixed `sfc_writer()` to correctly attach the `classes` attribute to
sfc output with mixed geometry types (#195).
- Function `sfc_writer()` now has an argument `promote_multi` to write any
input as the MULTI variant. This makes it more likely that an input vector
will be read as a single geometry type (#198).
- The `wk_collection_filter()` now correctly increments the `part_id` when
calling the child handler (@brownag, #194).
# wk 0.8.0
* Added `wkb_to_hex()` (@anthonynorth, #183).
* Implemented `vctrs::vec_proxy_equal()` for `wkb()` vctrs
(@anthonynorth, #183).
* Fixed `sfc_writer()`, which had returned NULL for some inputs
(e.g., via `wk_collection()`) (@anthonynorth, #182, #186).
* Added `wk_clockwise()` and `wk_counterclockwise()` to re-wind polygon rings
(@anthonynorth, #188).
* New replacement-function mode for `wk_coords<-()` for in-place modification
of coordinates (@mdsumner, #187).
* New function `wk_trans_explicit()` migrated from crs2crs (@mdsumner, #187).
# wk 0.7.3
* Fix tests for updated waldo package (#178).
# wk 0.7.2
* Fix use-after-free warnings.
# wk 0.7.1
* Fix implicit reliance on error `as.data.frame.default()`,
which no longer occurs in r-devel (#166).
# wk 0.7.0
* Remove legacy headers that are no longer used by any downstream package
(#146).
* `validate_wk_wkt()` now errors for an object that does not inherit from
'wk_wkt' (#123, #146).
* Added `wk_crs_projjson()` to get a JSON representation of a CRS object.
To make lookup possible based on shortcut-style CRS objects (e.g.,
`"EPSG:4326"` or `4326`), added data objects `wk_proj_crs_view` and
`wk_proj_crs_json` that contain cached versions of rendered PROJJSON
based on the latest PROJ version (#147).
* Added a `wk_crs_proj_definition()` method for `wk_crs_inherit()` (#136,
#147).
* Conversion to sf now uses the `sfc_writer()` for all wk classes, making
conversions faster and fixing at least one issue with conversion of NA
geometries to sf (#135).
* `wk_plot()` now plots `NULL`/`NA` geometries and mixed geometry types
more reliably (#142, #143, #149).
* Exported EMPTY geometries to well-known text now include dimension
(e.g., `POINT Z EMPTY`) (#141, #150).
* Fixed bug where `wk_polygon()` doubled some points when the input contained
closed rings (#134, #151).
* Fixed bug where `wk_count()` exposed uninitialized values for empty input
(#139, #153).
* The `xy_writer()` now opportunistically avoids allocating vectors for Z
or M values unless they are actually needed (#131, #154).
* Added example WKT for all geometry types and dimensions plus helper
`wk_example()` to access them and set various properties (#155).
* Fixes warnings when compiling with `-Wstrict-prototypes` (#157, #158).
* Removed `wk_chunk_map_feature()` in favour of using chunking strategies
directly (#132, #159).
* Optimized `wk_coords()` for `xy()` objects (#138, #160).
* Added accessor methods for record-style vectors: `rct_xmin()`, `rct_xmax()`,
`rct_ymin()`, `rct_ymax()`, `rct_width()`, `rct_height()`, `crc_center()`,
`crc_x()`, `crc_y()`, `crc_r()`, `xy_x()`, `xy_y()`, `xy_z()`, and `xy_m()`
(#144, #161).
* Added rectangle operators `rct_intersects()`, `rct_contains()`,
and `rct_intersection()` (#161).
# wk 0.6.0
* Fixed `wk_affine_rescale()` to apply the translate and scale
operations in the correct order (#94).
* Add `wk_handle_slice()` and `wk_chunk_map_feature()` to support
a chunk + apply workflow when working with large vectors (#101, #107).
* C and R code was rewritten to avoid materializing ALTREP vectors
(#103, #109).
* Added a `wk_crs_proj_definition()` generic for foreign CRS objects
(#110, #112).
* Added `wk_crs_longlat()` helper to help promote authority-compliant
CRS choices (#112).
* Added `wk_is_geodesic()`, `wk_set_geodesic()`, and argument `geodesic`
in `wkt()` and `wkb()` as a flag for objects whose edges must
be interpolated along a spherical/ellipsoidal trajectory (#112).
* Added `sf::st_geometry()` and `sf::st_sfc()` methods for wk geometry
vectors for better integration with sf (#113, #114).
* Refactored well-known text parser to be more reusable and faster
(#115, #104).
* Minor performance enhancement for `is.na()` and `validate_wk_wkb()`
when called on a very long `wkb()` vector (#117).
* Fixed issue with `validate_wk_wkb()` and `validate_wk_wkt()`, which failed
for most valid objects (#119).
* Added `wk_envelope()` and `wk_envelope_handler()` to compute feature-wise
bounding boxes (#120, #122).
* Fixed headers and tests to pass on big endian systems (#105, #122).
* Incorporated the geodesic attribute into vctrs methods, data frame
columns, and bbox/envelope calculation (#124, #125).
* Fix `as_xy()` for nested data frames and geodesic objects (#126, #128).
* Remove deprecated `wkb_problems()`, `wkt_problems()`, `wkb_format()`,
and `wkt_format()` (#129).
* `wk_plot()` is now an S3 generic (#130).
# wk 0.5.0
* Fixed bugs relating to the behaviour of wk classes as
vectors (#64, #65, #67, #70).
* `crc()` objects are now correctly exported as polygons
with a closed loop (#66, #70).
* Added `wk_vertices()` and `wk_coords()` to extract individual
coordinate values from geometries with optional identifying
information. For advanced users, the `wk_vertex_filter()`
can be used as part of a pipeline to export coordinates
as point geometries to another handler (#69, #71).
* Added `wk_flatten()` to extract geometries from collections.
For advanced users, the `wk_flatten_filter()` can be used as
part of a pipeline (#75, #78).
* `options("max.print")` is now respected by all vector classes
(#72, #74).
* Moved implementation of plot methods from wkutils to wk to
simplify the dependency structure of both packages (#80, #76).
* Added `wk_polygon()`, `wk_linestring()`, and `wk_collection()`
to construct polygons, lines, and collections. For advanced
users, `wk_polygon_filter()`, `wk_linestring_filter()`, and
`wk_collection_filter()` can be used as part of a pipeline
(#77, #84).
* Added a C-level transform struct that can be used to simplify
the the common pattern of transforming coordinates. These
structs can be created by other packages; however, the
`wk_trans_affine()` and `wk_trans_set()` transforms are
also built using this feature. These are run using the
new `wk_transform()` function and power the new
`wk_set_z()`, `wk_set_m()`, `wk_drop_z()`, `wk_drop_m()`,
functions (#87, #88, #89).
# wk 0.4.1
* Fix LTO and MacOS 3.6.2 check errors (#61).
# wk 0.4.0
* Removed `wksxp()` in favour of improved `sf::st_sfc()` support
(#21).
* Rewrite existing readers, writers, and handlers, using
a new C API (#13).
* Use new C API in favour of header-only approach for all
wk functions (#19, #22).
* Use cpp11 to manage safe use of callables that may longjmp
from C++.
* Vector classes now propagate `attr(, "crs")`, and check
that operations that involve more than one vector have
compatable CRS objects as determined by `wk_crs_equal()`.
* Added an R-level framework for other packages to implement
wk readers and handlers: `wk_handle()`, `wk_translate()`,
and `wk_writer()` (#37).
* Added a native reader and writer for `sf::st_sfc()` objects
and implemented R-level generics for sfc, sfg, sf, and bbox
objects (#28, #29, #38, #45).
* Implement `crc()` vector class to represent circles (#40).
* Added a 2D cartesian bounding box handler (`wk_bbox()`) (#42).
* Refactored unit tests reflecting use of the new API and
for improved test coverage (#44, #45, #46).
* Added `wk_meta()`, `wk_vector_meta()`, and `wk_count()` to
inspect properties of vectors (#53).
* Modified all internal handlers such that they work with vectors
of unknown length (#54).
# wk 0.3.4
* Fixed reference to `wkutils::plot.wk_wksxp()`, which
no longer exists.
# wk 0.3.3
* Fixed WKB import of ZM geometries that do not use EWKB.
* Added `xy()`, `xyz()`, `xym()` and `xyzm()` classes
to efficiently store point geometries.
* Added the `rct()` vector class to efficiently store
two-dimensional rectangles.
* Fixed the CRAN check failure caused by a circular
dependency with the wkutils package.
* Added S3 methods to coerce sf objects to and from
`wkt()`, `wkb()` and `wksxp()`.
# wk 0.3.2
* Fixed EWKB output for collections and multi-geometries
that included SRID (#3).
* Fixed CRAN check errors related to exception handling on
MacOS/R 3.6.2.
# wk 0.3.1
* Added a `NEWS.md` file to track changes to the package.
|