SnapSource Class

  • SnapSource
  • class Esri::ArcGISRuntime::SnapSource

    Indicates a source of geometries that a GeometryEditor could snap interactive edits to. More...

    Header: #include <SnapSource.h>
    Since: Esri::ArcGISRuntime 200.4
    Inherited By:

    Esri::ArcGISRuntime::FeatureLayer and Esri::ArcGISRuntime::GraphicsOverlay

    Public Functions

    virtual ~SnapSource()

    Protected Functions

    Detailed Description

    SnapSource is implemented by objects that can provide a source of geometries to snap interactive edits to when using the GeometryEditor. For example, a feature layer can provide a set of geometries that you may want your users to snap to.

    Following a call to SnapSettings::syncSourceSettings, the SnapSettings::sourceSettings collection is populated with SnapSourceSettings objects that are valid for snapping. Each represents a SnapSource that is in the currently connected map, is suitable for snapping, and is loaded. For each SnapSource you want to allow snapping to, set the corresponding SnapSourceSettings::setEnabled to true.

    Snapping is used to maintain data integrity between different sources of data when editing, so it is important that each SnapSource provides full resolution geometries to be valid for snapping. This means that some of the default optimizations used to improve the efficiency of data transfer and display of polygon and polyline layers based on feature services are not appropriate for use with snapping. To snap to polygon and polyline layers based on a ServiceFeatureTable, the recommended approach is to ensure the following properties are configured before the layer is loaded:

    You can configure these properties on a per-layer basis using FeatureLayer::tilingMode and ServiceFeatureTable::featureRequestMode, or for a whole Map using LoadSettings::featureRequestMode and LoadSettings::featureTilingMode.

    Layers providing a valid source of geometries for snapping are represented by a corresponding SnapSourceSettings object in the SnapSettings::sourceSettings collection after SnapSettings::syncSourceSettings returns.

    Alternative approaches to create a valid snappable layer for polygon or polyline hosted feature layers are to:

    If your app sets ArcGISRuntimeEnvironment::serviceCurveGeometryMode to ServiceCurveGeometryMode::TrueCurveClient to fetch true curves, you should consider using one of these alternatives. Curve geometries are not currently supported in the PBF format used by feature tile requests, and densified curves are returned from the service if feature tiling is used. Using these alternatives will ensure that true curves are preserved in a SnapSource based on a feature service.

    Local data sources, such as geodatabases, always provide full resolution geometries. Point and multipoint feature layers are also always full resolution.

    Relevant samples:

    • Snap geometry edits: Use the Geometry Editor to edit a geometry and align it to existing geometries on a map.

    Member Function Documentation

    [protected] SnapSource::SnapSource()

    Constructor.

    [virtual] SnapSource::~SnapSource()

    Destructor.

    Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.