63 lines
2.0 KiB
C#
63 lines
2.0 KiB
C#
using System;
|
|
using System.IO;
|
|
using Aspose.Gis;
|
|
using Aspose.GIS.Examples.CSharp;
|
|
using Aspose.Gis.Geometries;
|
|
|
|
namespace Aspose.GIS_for.NET.Layers
|
|
{
|
|
public static class EditLayer
|
|
{
|
|
public static void Run()
|
|
{
|
|
UpdateFeatures();
|
|
}
|
|
|
|
private static void UpdateFeatures()
|
|
{
|
|
Console.WriteLine($"== Start Demo: {nameof(UpdateFeatures)}");
|
|
var workFolder = RunExamples.GetDataDir();
|
|
|
|
// arrange temp file
|
|
CreateTempLayer(workFolder, "edit_me_out.kml");
|
|
|
|
// ExStart: UpdateFeatures
|
|
using (var layer = Drivers.Kml.EditLayer(Path.Combine(workFolder, "edit_me_out.kml")))
|
|
{
|
|
// add
|
|
Feature featureToAdd = layer.ConstructFeature();
|
|
featureToAdd.SetValue("string_field", "new_value");
|
|
featureToAdd.Geometry = new Point(5, 5);
|
|
layer.Add(featureToAdd);
|
|
|
|
// update
|
|
Feature featureToReplace = layer.ConstructFeature();
|
|
featureToReplace.SetValue("string_field", "updated_value");
|
|
featureToReplace.Geometry = new Point(12, 12);
|
|
layer.ReplaceAt(1, featureToReplace);
|
|
|
|
// remove
|
|
layer.RemoveAt(0);
|
|
}
|
|
// ExEnd: UpdateFeatures
|
|
|
|
}
|
|
|
|
private static void CreateTempLayer(string workFolder, string filename)
|
|
{
|
|
using (var layer = Drivers.Kml.CreateLayer(Path.Combine(workFolder, filename)))
|
|
{
|
|
layer.Attributes.Add(new FeatureAttribute("string_field", AttributeDataType.String));
|
|
|
|
for (int i = 0; i < 3; i++)
|
|
{
|
|
Feature feature = layer.ConstructFeature();
|
|
feature.SetValue("string_field", $"value_{i}");
|
|
feature.Geometry = new LineString(new[] { new Point(0, 0), new Point(i, i) });
|
|
|
|
layer.Add(feature);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |