|
| 1 | +--- |
| 2 | +title: "What's New in the R–ArcGIS Bridge (Q1 2026)" |
| 3 | +uid: whats-new-q1 |
| 4 | +--- |
| 5 | + |
| 6 | +```{r include = FALSE} |
| 7 | +library(arcgis) |
| 8 | +``` |
| 9 | + |
| 10 | +This quarter's release represents a major milestone in full-stack spatial development with R. Driven by feedback from last year's Developer Summit where many of you asked for better Shiny integration, we've focused on making it seamless to build professional web applications that connect R's analytical power with ArcGIS data and services. |
| 11 | + |
| 12 | +Key focus areas: |
| 13 | + |
| 14 | +- Shiny application development |
| 15 | +- Geoprocessing service support |
| 16 | +- Simplified content access |
| 17 | +- Portal integration |
| 18 | + |
| 19 | +## Changelogs |
| 20 | + |
| 21 | +For a full list of changes please refer to the individual changelogs for each package. |
| 22 | + |
| 23 | +- [`{calcite}`](https://github.com/R-ArcGIS/calcite/blob/main/NEWS.md) |
| 24 | +- [`{arcgisutils}`](https://github.com/R-ArcGIS/arcgisutils/blob/main/NEWS.md) |
| 25 | +- [`{arcgislayers}`](https://github.com/R-ArcGIS/arcigslayers/blob/main/NEWS.md) |
| 26 | + |
| 27 | + |
| 28 | +## Shiny Integration |
| 29 | + |
| 30 | + |
| 31 | +At this year's **2026 Esri Developer & Technology Summit** we are hosting the workshop [**"Full-stack spatial with R and ArcGIS"**](https://registration.esri.com/flow/esri/26epcdev/deveventportal/page/detailed-agenda/session/1761117256768001avMt). Our focus is building [`{shiny}`](http://shiny.posit.co) applications in R that harness the [Calcite Design System](https://developers.arcgis.com/calcite-design-system/) for building beautiful UIs while leveraging the ArcGIS System. |
| 32 | + |
| 33 | +To this end, we've revamped the `{calcite}` package with hand-crafted R bindings to make the integration feel as native as [`{bslib}`](https://rstudio.github.io/bslib/). |
| 34 | + |
| 35 | +- Build with alerts, accordions, date pickers, sliders, switches, and form inputs |
| 36 | +- Use page layouts: `page_navbar()`, `page_sidebar()`, `page_actionbar()` |
| 37 | +- Access component values directly (e.g., `input$my_btn$clicks`) |
| 38 | + |
| 39 | +Explore over 20 interactive examples via `calcite::open_example()`! |
| 40 | + |
| 41 | +The new `arcgisutils::auth_shiny()` function builds off of [shinyOAuth](https://lukakoning.github.io/shinyOAuth/) enabling user-specific behavior in shiny applications! |
| 42 | + |
| 43 | +- Users authenticate with their ArcGIS accounts |
| 44 | +- Tokens work throughout your application |
| 45 | +- Perform user-specific actions (read private content, edit services, access org resources) |
| 46 | + |
| 47 | + |
| 48 | +## Geoprocessing Services |
| 49 | + |
| 50 | +In an effort to increase the number of services in the ArcGIS System we support, we have built out native R support for geoprocessing services (GP services) in the `{arcgisutils}` R package. |
| 51 | + |
| 52 | +You can now call geoprocessing services directly from R with full async job management. Whether working with Esri's hosted services or your own published web tools, invoke them programmatically: |
| 53 | + |
| 54 | +```r |
| 55 | +downstream_job <- arc_gp_job$new( |
| 56 | + base_url = service_url, |
| 57 | + params = list(InputPoints = as_esri_featureset(input_points), f = "json"), |
| 58 | + result_fn = parse_gp_feature_record_set, |
| 59 | + token = arc_token() |
| 60 | +) |
| 61 | +``` |
| 62 | + |
| 63 | +Key features: |
| 64 | + |
| 65 | +- Built on [S7](https://github.com/RConsortium/S7) object system for type safety |
| 66 | +- Async job control with `$start()` and `$await()` |
| 67 | +- Works with any custom GP service you've published |
| 68 | + |
| 69 | +Learn more in our [geoprocessing services guide](https://developers.arcgis.com/r-bridge/geoprocessing/using-gp-services/#example-trace-downstream-service). |
| 70 | + |
| 71 | + |
| 72 | +## Simplified Content Access |
| 73 | + |
| 74 | +The `arc_open()` function now accepts virtually any ArcGIS URL or item ID ([PR #275](https://github.com/R-ArcGIS/arcgislayers/pull/275)). |
| 75 | +This work wouldn't have been possible without the effort and contribution of [Eli Pousson](https://github.com/elipousson)! |
| 76 | + |
| 77 | +```{r} |
| 78 | +# use an item ID |
| 79 | +arc_open("3c164274a80748dda926a046525da610") |
| 80 | +
|
| 81 | +# or the feature service url |
| 82 | +furl <- "https://services.arcgis.com/P3ePLMYs2RVChkJx/arcgis/rest/services/USA_Counties_Generalized_Boundaries/FeatureServer/0" |
| 83 | +
|
| 84 | +arc_open(furl) |
| 85 | +``` |
| 86 | + |
| 87 | +Due to our improved portal integration in `{arcgisutils}`, `arc_open()` now supports working with portal items and users. |
| 88 | + |
| 89 | +```{r} |
| 90 | +arc_open("https://analysis-1.maps.arcgis.com/home/user.html?user=r-bridge-docs") |
| 91 | +``` |
| 92 | + |
| 93 | +### Portal Integration |
| 94 | + |
| 95 | +We've worked hard on improving the portal integration in `{arcgisutils}` with functionality to: |
| 96 | + |
| 97 | +- search portal items |
| 98 | +- list users and groups and their items |
| 99 | +- download portal items |
| 100 | +- access current user metadata from the authentication token |
| 101 | + |
| 102 | + |
| 103 | +## What's Next? |
| 104 | + |
| 105 | +Looking ahead to the **2026 Esri User Conference**: |
| 106 | + |
| 107 | +- New `{arcgisrouting}` package ([in development](https://github.com/r-arcgis/arcgisrouting/)) |
| 108 | +- Built on GP services and S7 support |
| 109 | +- R-native access to routing and network analysis services |
| 110 | + |
| 111 | +--- |
| 112 | + |
| 113 | +## We Want Your Feedback |
| 114 | + |
| 115 | +We'd love to hear what would make your workflows even better. [Start a discussion](https://github.com/R-ArcGIS/arcgis/discussions/new?category=ideas) or open an issue on our GitHub repositories—your feedback shapes our roadmap. |
0 commit comments