agrobot_base/Exemplos/Aspose.GIS-for-.NET-master/Examples/CSharp/Layers/EditLayer.cs

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);
}
}
}
}
}