The 300.0 release of ArcGIS Maps SDK for Flutter is packed with new capabilities and takes a giant leap towards feature parity with the other Native Maps SDKs.
Here are the highlights...
Clustering and labeling
Support for clustering has been a widely requested capability, especially in our Community Forum. We've now exposed API that enables you to configure clustering definitions within your application. This enables you to aggregate and summarize features in a point FeatureLayer, or point graphics in a GraphicsOverlay. This includes defining properties such as the Renderer and radius size of the clusters. These aggregated GeoElements can then be worked into other application workflows, such as identify and displaying feature information in a popup.
Did you know? It remains possible to view any visual representations - like clustering - defined in a web map within your app, even if the API has not been directly exposed through the Native Maps SDKs.
Labeling APIs have also been exposed in 300.0, so you can define and configure LabelDefinitions that dynamically update as feature aggregation changes. Label definitions can also be applied to supported layer types, both in 2D and 3D. Check out our Show labels on layer and Show labels on layer in 3D samples for more details.
Utility networks
Support for work in the utilities space is an important capability for the Native Maps SDKs, with the benefits of mobile applications that support work in the field and in disconnected environments often at the forefront of development goals. The Maps SDK for Flutter now provides the same API and workflows for utility networks as the other Native Maps SDKs, including support for online and offline editing, validation, tracing and syncing. Utility associations can also be viewed via the popup view toolkit component, which automatically populates this data from a relevant feature.
Did you know? The ArcGIS Maps SDK for Flutter Toolkit is available via pub.dev or Github. It comes with pre-built widgets integrated with ArcGIS workflows that you can drop directly in your application. The toolkit includes an Authenticator to handle authentication challenges, automatically providing the appropriate UI dependent on the challenge issued, saving you development time.
Dynamic entities and callout
Real-time apps are another great way to take advantage of native applications. Apps can receive streams of data including stationary sensors such as weather stations, moving assets such as vehicles, or real-time events like crime and accidents. The dynamic entities API enables you to connect to these streams of data and display it dynamically within your app. Each update, or observation, can then be used as individual snapshots of moments in time, or combined into tracks and visualized with a track line. These observations can also be selected, identified or queried - just like other geo element workflows - and additional information shown on the map.
The 300.0 release of the Flutter Maps SDK includes support for the callout widget on the map view, which means you can show this dynamic feature data - as well as any other custom data you need to define - within a callout property on the map view without needing to manually define your own widget or UI.
Updating existing projects
Updating your existing project should be straightforward. With each release we bump our minimum Flutter version, so update your Flutter environment to 3.41.3+ (and review our System Requirements) and then update your pubspec.yaml file to point to arcgis_maps: ^300.0.0. Run flutter pub upgrade followed by dart run arcgis_maps install.
Plus....
In addition to the capabilities listed above, we've also exposed additional basemap styles API - so you can configure language strategy and world view properties at application level; and added support in our network authentication stack for Identity Aware Proxy (IAP) authentication. This includes an update to our Authenticator toolkit component to identify IAP challenges.
We've also continued to follow enhancements to existing capabilities within all the Native Maps SDKs, including support for the local scenes and building scene layers; and enhanced analysis API.
Summary
- 300.0 release of the Flutter Maps SDK includes support for clustering, labeling, utility networks and dynamic entities.
- Check out our samples which include code examples for all of the above.
- Review the status of feature support within the SDK on our parity page.
- To get started using the SDK, review our Get Started guide.
- To update your existing project, review the system requirements page and update your pubspec.yaml to point to arcgis_maps: ^300.0.0 to pull the latest version of the package from pub.dev.