Editing geographic data is the process of adding, updating, or deleting features A feature is a single record, also known as a row, that represents a real-world entity. It typically contains a geometry (point, multipoint, polyline, or polygon) and attributes but it can also contain just attributes. Learn more and related data on layers in a map. Each layer is connected to a data source A data source is a service or file containing geographic data that is accessed by a data layer. Learn more that defines and stores the features. Fine-grained control over editing operations are available by using the editing API, allowing you to do the following:

  • Add and delete features

  • Update geometry A geometry is a geometric shape, such as a point, polyline, or polygon, that contains one or more coordinates and a spatial reference. Learn more (for example, moving or reshaping a feature)

  • Update attributes Attributes are fields and values for a single feature or non-spatial record. They are typically stored in a database or service such as a feature service. Learn more of features

  • Add or delete feature attachments An attachment is a file, such as a photograph (for example, a .png file) or a document, that is associated with individual features in a geodatabase or feature layer. Learn more

Feature layers in your map that support editing expose editing functionality through the underlying FeatureTable.

Basic editing workflow

  1. Editing patterns describes the supported editing patterns available to you.

  2. Prepare data examines things to consider before you start building your editing applications. For example, there are situations where you might be required to create a feature service. Although this is not a development task, useful resources are provided to help you create your own feature services that in turn can be consumed and used in your application.

  3. Edit features covers the foundational edit operations: add, update, and delete that are key for any of the previously described editing patterns. The ability to undo or roll back changes is also explored.

  4. Edit geometry explains how to use the geometry editor to edit the geometry of a feature. It also explains different ways to create a new geometry.

  5. Persist edits show how to persist your local edits to the service feature database (online pattern) or a replica geodatabase (offline pattern) in a feature service.

Edit using feature forms§

A feature form enables your users to edit feature attribute values and feature attachments using a set of preconfigured controls. The form guides users to editable fields, restricts the values that can be entered, and validates user input.

A layer or feature table of that implements the FeatureFormSource has a default feature form containing all editable fields in the layer listed in default order. For a more customized user experience, the web map author can define a feature form for the layer that includes a subset of the total fields, presents them in a different order, and groups conceptually-related fields together.

Use the FeatureForm component in the ArcGIS Maps SDK for Flutter Toolkit to display and work with feature forms in your app. The following topics discuss feature forms, the feature form API, and the Toolkit component.

  • Overview lists the benefits of using a feature form for user input and describes the feature form definition that can be specified in the web map.

  • Edit using toolkit describes how to use the FeatureForm component in the ArcGIS Maps SDK for Flutter toolkit, which displays the feature form UI, handles user input from the feature form, streamlines handling validation errors, and saves or discards edits.

  • Editing capabilities identifies the FeatureForm API classes that provide access to the elements of a feature form.

§ This API has not yet been implemented in ArcGIS Maps SDK for Flutter, but will be added in a future release. See this page for more details.

Advanced editing capabilities

The data you are editing might have been enhanced with such advanced data design as attribute rules, contingent rules, and related features. These enhancements are defined in ArcGIS Online, ArcGIS Server, or ArcGIS Pro, but are consumed by the ArcGIS Maps SDK for Flutter API. In addition, some geodatabases can use branch versioning to support multiple editors and transactions to promote the data consistency of local commit.

  • Attribute rules can automatically populate attributes, restrict invalid edits during edit operations, and perform data validation checks on existing features to help improve data integrity for geodatabase datasets.

  • Contingent values are used to make allowed values in one attribute dependent upon the current values of other fields. They are built on top of attribute domains and add a further level of data integrity for user input.

  • Related features allow you to relate a feature in one table to a feature in another table. For example, you might want a user to be able to view building inspections from an inspection table and view general building information (such as common name, year built, or tenants) from a buildings table for the same set of buildings.

  • Branch versioned data provides support for isolating edits between multiple users making changes to a feature service. A quality assurance and control workflow can be used to audit the changes made — with only approved changes making it into a production database where key stakeholders view the data. Branch versioning applies to ServiceGeodatabases only.

  • Geodatabase transactions allow a set of edits to be committed or rolled back as a single batch. They apply only to sync-enabled mobile Geodatabases.

Samples