Esempio n. 1
0
        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 })}");
        }