The Runtime team is pleased to announce version 100.13 of the ArcGIS Runtime SDKs. Update 13 builds on existing capabilities and adds vector tile support in 3D, an indoor positioning API and many more improvements and refinements. Let’s start with 3D…
Vector Tile layers in 3D
Vector tiles have been the basemap of choice for some time. They provide high quality, resolution-independent display of complex cartography, and in general they bring improved performance. Especially relevant to Runtime applications, they are typically a more efficient delivery mechanism for offline basemaps (whether exporting tiles from a vector tile service, delivering vector tiles in a vector tile package, or including in a mobile scene package).
Until now, if you wanted to work in 3D then you had to rely on image tile layers for your basemaps. Now you can use vector tile layers, not only with our default basemaps, but also with your own custom styles created with the ArcGIS Vector Tile Style Editor. This also means that you can now take advantage of the API Key enabled ArcGIS Platform basemap styles when working in 3D.
You can also use vector tiles in 3D with your own data, which can simplify designing applications that work in both 2D and 3D, as well as any data publishing workflows you might have in place to support your apps.
We’re very excited to bring you this initial 3D vector tile support, and we’ll be improving both 2D and 3D support for vector tiles over the next few releases.
I3S 1.7 & 1.8 on mobile
At 100.12 we introduced support for Indexed 3D Scene Layer (I3S) versions 1.7 and 1.8 on desktop devices, and now we bring that to mobile. This delivers improvements to rendering, memory usage, and CPU usage, as well as reducing network requests. While these were great improvements for desktop solutions, they are arguably all the more impactful for mobile applications that have to contend with variable quality network connections and limited battery life. See the ArcGIS Runtime release notes (.NET, iOS, Android, Qt) to learn how to take full advantage of the latest improvements with your own data.
ArcGIS IPS is an indoor positioning system that works with beacons and a building survey to provide your location in real time while inside a building. It supports wayfinding, location tracking and sharing, and location data collection and analytics.
Update 13 delivers the first step in supporting indoor positioning with a new Indoors Location Data Source. This works with an ArcGIS IPS indoor positioning file and Bluetooth beacons to deliver an indoor blue dot experience via the Runtime’s Location Display, automatically falling back to GPS when necessary.
Display filters hide data from view while still retrieving that data and retaining it on device. This was designed to support utility networks which may have many related pieces of equipment clustered together (for example, a transformer within a transformer bank), but where it’s still important to retrieve and work with all the features even if you don’t need to see them all at once. The map display can be made much clearer by only displaying specific features, but you can still identify and select any features, visible or not.
Display filters use a where clause to specify which features to render, and can be applied explicitly, or based on a scale range. While they’re intrinsically useful when working with utility networks, developers can make use of them with any feature data to help declutter their maps or scenes.
Dimension layers can now be read and displayed from mobile map packages, mobile geodatabases, and ArcGIS Enterprise services to present schematic distance measurements on your map. Dimensions often go hand in hand with annotations, and behave similarly.
Dimensions support identify, selection, and visibility control, and participate in deconfliction with other labels in the map. Dimensions are currently read-only in ArcGIS Runtime.
Contingent values allow feature attribute edits to be restricted by the value of another attribute on that feature. This is similar to working with domains, but domains only consider a single attribute in isolation. For example, if your feature includes the make and model of a car, when the make is “Honda”, then valid models might be “Civic”, “Accord”, “CR-V”, etc.. However, you shouldn’t be able to set the model to any of those values if the car is a “Toyota”, in which case you should instead only be able to pick from “Highlander”, “RAV4”, “Prius” etc.
These rules are delivered by the feature table definition, and Runtime can validate that they are applied correctly to edited data. In addition, Runtime provides methods for you to get valid values for a given field, and to validate edits before applying them, so you can include contingent values in custom data collection and editing workflows.
Utility Network full deletion semantics
We’ve expanded association deletion semantics with utility networks. Runtime now supports Cascade (where associated features are deleted if the container is deleted), Restrict (where the container cannot be deleted if it contains associated features), and of course None (allowing a container to be deleted but not deleting it’s associated features), where specific rules are configured in the utility network definition.
The toolkit team has been hard at work to bring search, basemap selector, and floor selector widgets to a number of the SDKs. See the toolkits for each SDK for more details (.NET, iOS, Android, Java, Qt).
Downloadable standalone documentation
You can now download your SDK’s documentation (Guide, API Reference, Samples, and Tutorials) to use without a network connection, served from a local web server. Many developers find themselves behind a restrictive firewall or even, in the case of building apps around Runtime’s offline capabilities, unable to access a network at all. Documentation is now available for the 100.12 and 100.13 releases, and will be made available for all future releases.
There are so many more enhancements we’ve included in this release that we couldn’t cover them all in detail. Here, in no particular order, are some of the key ones:
- Full CIM symbol support when writing to a web map.
- Improved Arcade support (including higher level functions).
- Annotations, polygons, and lines as label barriers.
- Point Scene labeling from web scenes.
- Better 3D label deconfliction.
- Floor Awareness in 3D, including feature layers, point scene layers, and 3D object scene layers.
- Composite and multilayer symbol support in location display.
- New APIs for Alternate Symbols and scale-based symbols on class break and unique value renderers.
- Improved geotriggers when using a service.
- Define geotrigger quality and sensitivity using Arcade.
- Improved cancelation support for long running jobs.
- Properly reflect server-side data editing logic when editing data in a service.
- Read and write Web Maps containing OGC API Feature layers.
- Ordered anchor points when using dictionary renderers.
Download and get started
To get your hands on version 100.13, 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.