add_attachment(): a new function to add attachments to a set of features in a feature layer.llms.txtarc_select() returns an empty data.frame instead of NULL when no features are returned from a queryadd_features() uses rlang::is_interactive() to determine if the user is running in an interactive session instead of base::interactive(). This allows for the specification of which mode the function should run in using rlang::with_interactive() or rlang::local_interactive().encode_field_values(codes = "replace-valid") allows users to retain invalid values when replacing coded values. (#267)update_attachments() function modifies a feature service's attachments https://github.com/R-ArcGIS/arcgislayers/pull/277arc_open() now works with item IDs or a variety of URLs such as item, user, group, and more https://github.com/R-ArcGIS/arcgislayers/pull/275add_definition() (#178), update_definition() (#127), and delete_definition() functions for FeatureServer and FeatureLayer objects.update_features() with an error message when the objectid is not an integer (#250)get_layer() warns as expected on invalid layer names values. (#251)encode_field_values() handles numeric columns with coded value domains without warnings or errors. (#237)encode_field_values() now properly skips range field types (#263)update_features() is now parallelized and sends updates in chunks see chunk_size argument and progress arguments. The return type is now a data.frame and not a list with updateResultsdelete_features() is now parallelized and deletes in chunks. See above.{arcgislayers} now depends on R 4.2 or higher.list_service_raster_fns() is now deprecated in favor of list_raster_fns()filter_geom by arc_select() by warning if applying sf::st_union() to the filter does not generate a length 1 sfc, or if filter_geom is supplied when accessing a Table, or if filter_geom is empty (@elipousson, #166)set_layer_aliases() (previously used internally by arc_read()) to allow use of alias values with data returned by arc_select() (#169).encode_field_values() function to support replacement or labeling of values with coded value domains (#134).get_layer(), get_all_layers(), and get_layers() to require FeatureServer, MapServer, or GroupLayer input objects.arc_select() to not error out when query capability isn't explicitly listed. Instead cli_alert_danger() is used to communicate the issue https://github.com/R-ArcGIS/arcgislayers/pull/230arc_select() includes argument name in error message when ... contains non-string values. https://github.com/R-ArcGIS/arcgislayers/issues/226dplyr methods for collect(), select(), and filter() have been removed. https://github.com/R-ArcGIS/arcgislayers/issues/111 https://github.com/R-ArcGIS/arcgislayers/issues/224 https://github.com/R-ArcGIS/arcgislayers/issues/218arc_read(col_names = "alias") (use arc_read(alias = "replace") instead)page_size resulted in error due to introduction of type-check. Fixed and added test to avoid in the future. #205arc_select() results include fewer features than expected from request #220arc_raster() gains an argument raster_fn which takes a character scalar and performs a raster function server side before returning resultslist_service_raster_fns() is a new helper function to list available raster functions for an ImageServerarc_open() ignores queries included in input URLs and retains any custom queries in the query attribute for Table and FeatureLayers. (#215)arc_open() will now work on any resource that works when f=json is set in the query parameters closes #163{arcpbf} when a layer supports protocol buffers.
query_layer_attachments() and download_attachments() help you access and download attachments to a layerarc_raster() now downloads the exported image to a temp file instead of creating a connection to the url returned. This fixes an issue where rasters would stop working after the url had been removed.alias argument to arc_read() allowing replacement or labelling of field names with alias values (#169)pull_field_aliases() utility functionarc_select() now uses arcgisutils::rbind_results() for faster row-binding if {collapse}, {data.table}, {vctrs} are installed (#175)fields column names for arc_select() (fixes minor bug with arc_read handling of col_names) (#185)"wkid" or "wkt" value if "latestWkid" is missing. (#188)arc_select() when layer can't support pagination. (#191)arc_open() no longer removes NULL properties h/t @elipousson
includes page_size argument to arc_select() allowing users to return smaller page sizes and avoid timeouts for dense geometries
Add support for GroupLayers
Add arc_read() with support for name_repair argument using {vctrs} (#108)
Add get_layer_estimates() to retrieve estimate info such as the number of features and the extent of the layer
Add truncate_layer() to support truncate and append workflow
Add support for opening MapServers https://github.com/R-ArcGIS/arcgislayers/pull/83
arc_open() with a layer that does not support Query sets the n attribute toNA https://github.com/R-ArcGIS/arcgislayers/pull/83
<FeatureLayer <NA features, 10 fields>>arc_select() is now supported for ImageServers #78
add_features() is now paginated and performed in parallel. It gains an argument chunk_size which determines the maximum number of rows to be added to a feature service.
adds get_layers() which can fetch multiple items from a FeatureServer or MapServer
list_items()adds cli as an explicit import (has been implicitly imported by httr2)
repository made public
add lifecycle badges to all exported functions https://github.com/R-ArcGIS/arcgislayers/pull/101
Breaking:
token arguments are required to be a valid httr2_token object (strings are not supported).host arguments are removed. Instead, the host is fetched from the token.user arguments are removed. Instead, the username is fetched from the token. If it is not found, an error is thrown.