Developers

What's new in ArcGIS Runtime 100.14

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.

Runtime Arcade Evaluator example (iOS)
An example of using the new Arcade Evaluator in Swift to count point features within a polygon.

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:

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.

Floor Filter component from the toolkit for the ArcGIS Runtime Toolkit for .NET
The Floor Filter component from the toolkit for the ArcGIS Runtime SDK for .NET showing facility and floor selection capabilities.

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.

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.

About the authors

Nick Furness

Nick Furness is a Technical Product Manager for the ArcGIS Runtime SDKs, specializing in the ArcGIS Runtime SDK for iOS. He's spent over 20 years working in the GIS space building projects ranging from small mom-and-pop solutions all the way up to enterprise utility and national government deployments. Nick presents at various Esri Developer Summits, the User Conference, and many other events, almost always talking about something to do with the Runtime SDKs although you might find the odd bit of JavaScript thrown in there.

Connect:

Rex Hansen

Rex Hansen is a Product Manager for the ArcGIS Runtime and Maps SDKs. He has over 25 years of experience in GIS, spatial analytics, and computer mapping. Currently, he guides the development of native technologies in the GIS industry to use authoritative geospatial content and analysis in offline workflows, photorealistic experiences, and immersive, extended reality solutions.

Connect:
0 Comments
Inline Feedbacks
View all comments

Next Article

The perfect layer effect for differentially-private data: Blur

Read this article