internal void ExportToLayer(IEnumerable <IPoint> points) { _log.DebugEx("> ExportToLayer START."); var fClassName = $"GCP_{DateTime.Now.ToString("yyyyMMddHHmmss")}_P"; var featureClass = GdbAccess.Instance.AddCalcPointsFeature(points, fClassName, EsriTools.Wgs84Spatialreference); ArcMapHelper.AddFeatureClassToMap(featureClass); _log.DebugEx("> ExportToLayer END."); }
private void InitializeLayersList() { lbLayers.Items.Clear(); var layers = ArcMapHelper.GetFeatureLayers(); foreach (var layer in layers) { lbLayers.Items.Add(layer); } lbLayers.SetSelected(0, true); }
internal void ImportFromLayer(string layerName) { _log.DebugEx("> ImportFromLayer START."); var spatialReference = ArcMap.Document.ActiveView.FocusMap.SpatialReference; var layer = ArcMapHelper.GetLayer(layerName); if (layer == null) { _log.ErrorEx($"Cannot find a layer {layerName}."); return; } var points = new List <IPoint>(); if (layer is IFeatureLayer seatureLayer) { var featureClass = seatureLayer.FeatureClass; IQueryFilter queryFilter = new QueryFilter(); queryFilter.WhereClause = $"{featureClass.OIDFieldName} >= 0"; IFeatureCursor featureCursor = featureClass.Search(queryFilter, true); IFeature feature = featureCursor.NextFeature(); try { while (feature != null) { var shape = feature.ShapeCopy; if (featureClass.ShapeType == esriGeometryType.esriGeometryPoint) { var point = shape as IPoint; points.Add(point); } else { var path = shape as IPointCollection; for (int i = 0; i < path.PointCount; i++) { points.Add(path.Point[i]); } } feature = featureCursor.NextFeature(); } } catch (Exception ex) { _log.ErrorEx($"> ImportFromLayer Exception. ex.Message:{ex.Message}"); } finally { Marshal.ReleaseComObject(featureCursor); } } if (points.Count > 500) { var dialogResult = MessageBox.Show(String.Format(_context.FindLocalizedElement("BigFeatureClassMessage", "Отримано {0} точок. Імпорт такого об'єму може зайняти багато часу.\nВи бажаєте продовжити?"), points.Count), _context.WarningString, MessageBoxButtons.OKCancel); if (dialogResult != DialogResult.OK) { _log.DebugEx("> ImportFromLayer CANCELED."); return; } } View.AddPointsToGrid(points); _log.DebugEx("> ImportFromLayer END."); }