public static IPoint GetCenterPoint(List <IGeometry> geometries) { var envelope = EsriTools.GetEnvelopeOfGeometriesList(geometries); var x = envelope.XMin + (envelope.XMax - envelope.XMin) / 2; var y = envelope.YMin + (envelope.YMax - envelope.YMin) / 2; return(new Point { X = x, Y = y, SpatialReference = envelope.SpatialReference }); }
private static IFeatureClass GenerateWorknArea(string poterniallyVisibleAreaFCName, string pointsFCName, string workinAreaFCName) { var points = EsriTools.GetFeatreClassExtent(GdbAccess.Instance.GetCalcWorkspaceFeatureClass(pointsFCName)); var poterniallyVisibleArea = EsriTools.GetFeatreClassExtent(GdbAccess.Instance.GetCalcWorkspaceFeatureClass(poterniallyVisibleAreaFCName)); poterniallyVisibleArea.Project(EsriTools.Wgs84Spatialreference); points.Project(EsriTools.Wgs84Spatialreference); var combined = EsriTools.GetEnvelopeOfGeometriesList(new IGeometry[] { points, poterniallyVisibleArea }); var workinAreaFC = GdbAccess.Instance.GenerateTempStorage(workinAreaFCName, null, esriGeometryType.esriGeometryEnvelope, null, false, true); var area = workinAreaFC.CreateFeature(); area.Shape = combined; area.Store(); return(workinAreaFC); }