private async Task <List <Measurement> > ReloadSelectionAsync()
        {
            List <Measurement> result = new List <Measurement>();
            bool thisMeasurement      = false;

            if (Layer.SelectionCount >= 1)
            {
                await QueuedTask.Run(async() =>
                {
                    Selection selectionFeatures = Layer?.GetSelection();

                    using (RowCursor rowCursur = selectionFeatures?.Search())
                    {
                        while (rowCursur?.MoveNext() ?? false)
                        {
                            Row row           = rowCursur.Current;
                            Feature feature   = row as Feature;
                            Geometry geometry = feature?.GetShape();
                            long objectId     = feature?.GetObjectID() ?? -1;

                            if ((geometry != null) && (objectId != -1))
                            {
                                Measurement measurement    = _measurementList.Get(objectId) ?? (await _measurementList.GetAsync(geometry));
                                thisMeasurement            = true;
                                _measurementList.DrawPoint = false;
                                EditTools editTool         = _vectorLayerList.EditTool;

                                if ((editTool != EditTools.SketchLineTool) && (editTool != EditTools.SketchPointTool) &&
                                    (editTool != EditTools.SketchPolygonTool))
                                {
                                    measurement = _measurementList.StartMeasurement(geometry, measurement, false, objectId, this);
                                }

                                _measurementList.DrawPoint = true;

                                if (measurement != null)
                                {
                                    await measurement.UpdateMeasurementPointsAsync(geometry);
                                    measurement.CloseMeasurement();
                                    result.Add(measurement);
                                }
                            }
                        }
                    }
                });
            }

            if (thisMeasurement && (_vectorLayerList.EditTool == EditTools.SketchPointTool))
            {
                _vectorLayerList.SketchFinished();
                await _vectorLayerList.StartSketchToolAsync();
            }

            return(result);
        }
        private async Task StartMeasurementSketchAsync(VectorLayer vectorLayer)
        {
            Measurement measurement = _measurementList.Sketch;
            MapView     mapView     = MapView.Active;
            Geometry    geometry    = await mapView.GetCurrentSketchAsync();

            _measurementList.StartMeasurement(geometry, measurement, true, null, vectorLayer);
        }