Browse our Products

If so you can download any of the below versions for testing. The product will function as normal except for an evaluation limitation. At the time of purchase we provide a license file via email that will allow the product to work in its full capacity. If you would also like an evaluation license to test without any restrictions for 30 days, please follow the directions provided here.

 

Aspose.GIS for .NET 24.8 (DLLs only)

Download  Support Forum 

File Details

  • Downloads:
  • 1
  • File Size:
  • 9.63MB
  • Date Added:
  • 30/8/2024

Description

This ZIP file contains only the Aspose.GIS for .NET 24.8 assemblies. The assemblies are the same as in the MSI installer of the product of the same version.

File Details

Manipulate GIS data seamlessly within your C# and VB.NET applications using the latest Aspose.GIS for .NET 24.8 (DLLs-only) release. This version grants you the ability to edit and rename layers directly within datasets, along with improved GDB geometries handling.

Effortless Layer Editing

Upgrade your cross-platform applications with the capability to edit layers within a dataset using the newly introduced EditLayerAt and EditLayer methods in the latest .NET geospatial data manipulation API release. This release lets you make direct modifications to existing feature data or geometries.

Code example:


  public void EditLayerInDatasetByName()
  {
      string path = ".gdbtable";
      using (var dataset = Dataset.Create(path, Drivers.FileGdb))
      {
          using (var layer = dataset.CreateLayer("l1"))
          {
              layer.Attributes.Add(new FeatureAttribute("attribute", AttributeDataType.String));
              var feature = layer.ConstructFeature();
              feature.SetValue("attribute", "value");
              layer.Add(feature);
          }
      }

      using (var dataset = Dataset.Open(path, Drivers.FileGdb))
      {
          Assert.AreEqual(1, dataset.LayersCount);
          using (var layer = dataset.EditLayer("l1"))
          {
              AddFeature(layer, "attribute", "value_2");
          }
      }

      using (var dataset = Dataset.Open(path, Drivers.FileGdb))
      {
          Assert.AreEqual(1, dataset.LayersCount);
          using (var layer = dataset.OpenLayerAt(0))
          {
              Assert.AreEqual(2, layer.Count);
              var feature_1 = layer[0];
              Assert.AreEqual("value", feature_1.GetValue<string>("attribute"));
              var feature_2 = layer[1];
              Assert.AreEqual("value_2", feature_2.GetValue<string>("attribute"));
          }
      }
  }

  public void EditLayerInDatasetByIndex()
  {
      string path = ".gdbtable";
      using (var dataset = Dataset.Create(path, Drivers.FileGdb))
      {
          using (var layer = dataset.CreateLayer())
          {
              layer.Attributes.Add(new FeatureAttribute("attribute", AttributeDataType.String));
              var feature = layer.ConstructFeature();
              feature.SetValue("attribute", "value");
              layer.Add(feature);
          }
      }

      using (var dataset = Dataset.Open(path, Drivers.FileGdb))
      {
          Assert.AreEqual(1, dataset.LayersCount);
          using (var layer = dataset.EditLayerAt(0))
          {
              var feature = layer.ConstructFeature();
              feature.SetValue("attribute", "value_1");
              feature.Geometry = new Point(7, 7);
              layer.ReplaceAt(0, feature);

              AddFeature(layer, "attribute", "value_2");
          }
      }

      using (var dataset = Dataset.Open(path, Drivers.FileGdb))
      {
          Assert.AreEqual(1, dataset.LayersCount);
          using (var resultLayer = dataset.OpenLayerAt(0))
          {
              Assert.AreEqual(2, resultLayer.Count);
              var feature_1 = resultLayer[0];
              Assert.AreEqual("value_1", feature_1.GetValue<string>("attribute"));
              var feature_2 = resultLayer[1];
              Assert.AreEqual("value_2", feature_2.GetValue<string>("attribute"));
              Assert.AreEqual(new Point(7, 7), resultLayer[0].Geometry);
          }
      }
  }

Source*

Rename Layers Easily

Renaming layers to enhance code clarity and organization within datasets is easier than ever using the new RenameLayer method in Aspose.GIS for .NET 24.8.

Code example:


public void RenameLayerInDataset()
{
    string path = ".gdbtable";
    using (var dataset = Dataset.Create(path, Drivers.FileGdb))
    {
        using (var layer = dataset.CreateLayer("l1"))
        {
            layer.Attributes.Add(new FeatureAttribute("attribute", AttributeDataType.String));
            AddFeature(layer, "attribute", "value");
        }
        using (var layer = dataset.CreateLayer("l2"))
        {
            layer.Attributes.Add(new FeatureAttribute("attribute", AttributeDataType.String));
            AddFeature(layer, "attribute", "value");
        }
        using (var layer = dataset.CreateLayer("l3"))
        {
            layer.Attributes.Add(new FeatureAttribute("attribute", AttributeDataType.String));
            AddFeature(layer, "attribute", "value");
        }
    }

    using (var dataset = Dataset.Open(path, Drivers.FileGdb))
    {
        Assert.AreEqual(3, dataset.LayersCount);

        using (var layer = dataset.EditLayer("l3"))
        {
            AddFeature(layer, "attribute", "value_2");
        }
        dataset.RenameLayer("l3", "new_l3");
    }

    using (var dataset = Dataset.Open(path, Drivers.FileGdb))
    {
        Assert.AreEqual(3, dataset.LayersCount);
        using (var layer = dataset.OpenLayerAt(2))
        {
            Assert.AreEqual(2, layer.Count);
            var feature_1 = layer[0];
            Assert.AreEqual("value", feature_1.GetValue<string>("attribute"));
            var feature_2 = layer[1];
            Assert.AreEqual("value_2", feature_2.GetValue<string>("attribute"));

            Assert.AreEqual(true, dataset.HasLayerWithName("l1"));
            Assert.AreEqual(true, dataset.HasLayerWithName("l2"));
            Assert.AreEqual(true, dataset.HasLayerWithName("new_l3"));
            Assert.AreEqual(false, dataset.HasLayerWithName("l3"));
        }
    }
}

Source*

Improved GDB Geometry Handling

You can now correctly identify geometry types in layers with empty geometries within GDB files across Windows, Linux, and macOS platforms.

Code example:


public void CheckGeometryType()
{
    string outputPath = "somepath.gdb";
    CopyDirectory(GetPath("ThreeLayers.gdb"), outputPath);

    using (var dataset = Dataset.Open(outputPath, Drivers.FileGdb))
    {
        using (dataset.CreateLayer("unnamed_layer_1")) { }
        using (dataset.CreateLayer()) { }

        using (var layer = dataset.CreateLayer("new_layer", new FileGdbOptions(), SpatialReferenceSystem.Wgs72))
        {
            layer.Attributes.Add(new FeatureAttribute("color", AttributeDataType.String));

            var feature = layer.ConstructFeature();
            feature.SetValue("color", "red");
            feature.Geometry = new Point(1, 2);
            layer.Add(feature);
        }

        Assert.AreEqual(6, dataset.LayersCount);
    }

    using (var dataset = Dataset.Open(outputPath, Drivers.FileGdb))
    {
        Assert.AreEqual(6, dataset.LayersCount);
        Assert.AreEqual(GeometryType.Point, dataset.OpenLayerAt(0).GeometryType);
        Assert.AreEqual(GeometryType.MultiPoint, dataset.OpenLayerAt(1).GeometryType);
        Assert.AreEqual(GeometryType.Null, dataset.OpenLayerAt(2).GeometryType);
        Assert.AreEqual(GeometryType.Null, dataset.OpenLayerAt(3).GeometryType);
        Assert.AreEqual(GeometryType.Null, dataset.OpenLayerAt(4).GeometryType);
        Assert.AreEqual(GeometryType.Point, dataset.OpenLayerAt(5).GeometryType);

        using (var layer = dataset.OpenLayer("new_layer"))
        {
            Assert.IsTrue(SpatialReferenceSystem.Wgs72.IsEquivalent(layer.SpatialReferenceSystem));
            Assert.AreEqual(1, layer.Count);
            Assert.AreEqual("red", layer[0].GetValue<string>("color"));
            Assert.AreEqual(new Point(1, 2) { SpatialReferenceSystem = SpatialReferenceSystem.Wgs72 }, layer[0].Geometry);
            Assert.AreEqual(GeometryType.Point, layer.GeometryType);
        }
    }
}

Source*

Bug Fix

We have addressed a potential OutOfMemory exception encountered while working with GeoTIFF files to ensure a more stable development experience.

Public API and Backward Incompatible Changes

Added API Members

  • Method:Aspose.Gis.Dataset.EditLayerAt(System.Int32,Aspose.Gis.DriverOptions,Aspose.Gis.SpatialReferencing.SpatialReferenceSystem)
  • Method:Aspose.Gis.Dataset.EditLayerAt(System.Int32,Aspose.Gis.DriverOptions,Aspose.Gis.SpatialReferencing.SpatialReferenceSystem)
  • Method:Aspose.Gis.Dataset.HasLayerWithName(System.String)
  • Method:Aspose.Gis.Dataset.RenameLayer(System.String,System.String)

You can view the list of all new features, enhancements, and bug fixes introduced in this release by visiting Aspose.GIS for .NET 24.8 Release Notes.

 English