private static void Details(string dataSetPath) { Driver fileGdbDriver = Ogr.GetDriverByName("OpenFileGDB"); DataSource dataSource = fileGdbDriver.Open(dataSetPath, 0); Layer layer = dataSource.GetLayerByIndex(0); string shapeType = layer.GetGeomType().ToString("G").Substring(3); Console.WriteLine($"Shape Type: {shapeType}"); SpatialReference spatialReference = layer.GetSpatialRef(); string projectionName = spatialReference.GetName(); Console.WriteLine($"Projection: {projectionName}"); using Envelope extent = new Envelope(); layer.GetExtent(extent, 0); var dataSetExtent = new { XMin = extent.MinX, XMax = extent.MaxX, YMin = extent.MinY, YMax = extent.MaxY, }; Console.WriteLine($"Extent: {JsonSerializer.Serialize(dataSetExtent, new JsonSerializerOptions { WriteIndented = true })}"); int featureCount = (int)layer.GetFeatureCount(0); Console.WriteLine($"Feature Count: {featureCount}"); List <dynamic> columns = new List <dynamic>(); FeatureDefn layerDefinition = layer.GetLayerDefn(); for (int j = 0; j < layerDefinition.GetFieldCount(); j++) { FieldDefn field = layerDefinition.GetFieldDefn(j); columns.Add(new { Name = field.GetName(), DataType = field.GetFieldTypeName(field.GetFieldType()), }); } Console.WriteLine($"Columns: {JsonSerializer.Serialize(columns, new JsonSerializerOptions { WriteIndented = true })}"); }