The Runtime team is pleased to announce version 100.14 of the ArcGIS Runtime SDKs, bringing you exciting new capabilities like creating mobile geodatabases, an Arcade evaluator API and console, limiting map view navigation to a custom extent, attribute rules, projecting 3D Object and Integrated Mesh scene layers, and so much more.
Reprojecting 3D Object and Integrated Mesh layers
The SceneView has always supported rich 3D Object layers, Integrated Meshes, and many other layer types, but to see some of these, the data has had to be published in WGS84 to match the Runtime’s SceneView’s spatial reference. That’s been a barrier to entry and, on occasion, a point of confusion too.
With 100.14 we’re pleased to announce that we will now consume 3D Object layers and Integrated Mesh layers in other projections and show them correctly in the WGS84 SceneView. For many customers this will simplify their data processing pipeline as they won’t have to publish an additional WGS84 version of their data for use in the Runtime SDKs and the apps built upon them (for example, Site Scan Flight).
Other 3D improvements
ArcGIS Runtime now supports Draco compression, which can reduce memory usage, network traffic, disk I/O, and rendering time. We’ve seen improvements of up to 30% in rendering time and 20% in memory usage. You can use the I3S Converter to update your Scene Layer Packages to support and include Draco compressed geometries.
We’ve also improved our calculations of the tiles we’ll need when displaying a scene view which can reduce the number of raster and vector tile requests by up to 40%.
Together, these updates can make a marked improvement to the performance and responsiveness of your 3D applications.
Arcade Evaluator
Arcade is a powerful scripting language that permeates throughout the ArcGIS system (in ArcGIS Online, ArcGIS Pro, ArcGIS Enterprise, and elsewhere). It’s used in rendering, symbology, popups, attribute rules, attribute calculations, and more. ArcGIS Runtime SDKs have long supported Arcade, but a frequently requested feature has been to allow developers to execute Arcade themselves. Use cases include validating Arcade expressions, or building custom user experiences around Arcade found in web maps or elsewhere.
Runtime 100.14 comes to the rescue with a powerful new Arcade API. Simply create an Arcade Evaluator from an Arcade expression. Whenever you need to see what that Arcade expression evaluates to, you create a dictionary of Arcade variable names mapped to Runtime objects and call Evaluate. You can then use the result however you like. The Arcade API will even tell you which variables a particular Arcade expression needs you to include in the dictionary. And because you pass in Runtime objects, all the bridging is done for you.
As a bonus, we’ve also exposed an Arcade console. Any time your Arcade script makes a call to the Console() function, that console message will be bubbled up to your Runtime app to display or log however you like. This should simplify working with and debugging Arcade expressions, whether through the new Arcade API or through other parts of Runtime such as utility network or Geotriggers.
Creating mobile geodatabases
Runtime has worked with mobile geodatabases created in ArcGIS Pro since 100.12. Now we’re adding an API to let you create mobile geodatabases on the fly in your Runtime apps.
You can create new mobile geodatabases, and add and delete tables. The tables you create support attachments, all geometry types (including true curves), and Z values and M values. And you can even define domains and use those in your new tables.
This opens up all sorts of new data collection workflows that don’t require ArcGIS Pro as the source of the data schema. And of course mobile geodatabases created by your Runtime application can be opened, read, and edited by other Runtime applications and by ArcGIS Pro.
Creating mobile geodatabases in your Runtime application requires a Basic level license.
Attribute rules
Attribute rules are Arcade expressions defined on a feature service layer or a table in a mobile geodatabase. They’re executed when features are created or edited, and help with data consistency and correctness, as well as editing efficiency. Two kinds of rules are supported:
- Constraint rules help to ensure that invalid data cannot be created or edited.
- Calculation rules increase editing efficiency by populating attributes or making related edits to other geodatabase objects.
At 100.14, Runtime will execute attribute rules locally when working with a mobile geodatabase. Runtime will also execute attribute rules locally when working with a feature service, except for rules defined with “Exclude from Application Evaluation” which will be run on the server when in-memory client edits are applied.
Improvements to Indoor Positioning
We introduced the Indoor Positioning API in Runtime 100.13, and continue to improve and expand it. 100.14 brings the ability to cache the pathways table for offline use, Apple indoor positioning support on iOS devices, improved positional accuracy for all indoor positioning sources, and improved error and warning handling APIs for better diagnostics.
Custom map extent
When ArcGIS Runtime reads a map definition (either from a web map or when you create a map yourself), it bases the maximum navigable extent on the layers it finds. Typically this is the basemap. Many Runtime apps make use of our global basemaps but need to constrain the user to a localized area, and 100.14 adds the ability to specify a custom maximum extent that the Map View will use to constrain navigation.
Toolkits
The toolkit team has been hard at work to bring you a brand new interactive Floor Filter component, available for .NET, Android, iOS, Java, and Qt.
The picker allows you to select sites, facilities and floors from your floor-aware maps and scenes, and can be context sensitive to adjust itself as you navigate the map. See each SDK’s toolkit for more details (.NET, iOS, Android, Java, Qt).
Other enhancements
As always, there are many more enhancements that are included and which we can’t cover in detail. Here, in no particular order, are some of them.
- Read the vertical units of a spatial reference.
- Perform geodetic nearest coordinate calculations.
- Enumerate the domains defined in a mobile geodatabase or geodatabase replica.
- Create feature layers directly from a Portal Item without having the specify a layer ID.
- Read Geotriggers from web maps or mobile map packages.
- Improved cancelation of server-side jobs with a new asynchronous API.
- Improved Job execution API exposing status changes and messages more intuitively.
- Preplanned Maps with Scheduled Updates can now support client-side adds.
- Download a geographic area of Esri’s hosted elevation services for offline use.
- Popup managers now support contingent values.
- Enhanced popup elements API.
- Improved routing and service area performance.
- Labeling improvements.
- Local Server is updated to support geoprocessing and map packages created with ArGIS Pro 2.9, as well as the ArcGIS toolbox format (.atbx file extension).
For more details on each of these, head on over to the release notes for Android, iOS, Qt, .NET, and Java.
Download and get started
To get your hands on version 100.14, go to the ArcGIS Developers web site, browse to the ArcGIS Runtime SDK page of your choice and download the SDK. You can also reference the SDK through NuGet, Gradle, Swift Package Manager, or CocoaPods. If you’re new to developing with ArcGIS Runtime, each SDK (.NET, iOS, Android, Java, and Qt) has rich guide documentation, API Reference, Tutorials, and samples. Simply sign up for a free ArcGIS Developer account and you’ll be able to access everything you need to develop your app.
One last thing
We have some exciting plans for the next few releases after 100.14. We recommend you take a look at our blog post about those plans where we discuss what’s coming later in 2022.
Article Discussion: