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

138 lines
4.7 KiB
C#

using System;
using Aspose.Gis;
using Aspose.GIS.Examples.CSharp;
using Aspose.Gis.Formats.Csv;
using Aspose.Gis.Geometries;
namespace Aspose.GIS_for.NET.Layers
{
public class CsvLayer
{
public static void Run()
{
ReadCsvFeatures();
ReadCsvGeometryFromWkt();
ReadCsvPoints();
WriteCsvFeatures();
}
private static void ReadCsvFeatures()
{
Console.WriteLine($"== Start Demo: {nameof(ReadCsvFeatures)}");
var dataDir = RunExamples.GetDataDir();
//ExStart: ReadCsvFeatures
using (var layer = Drivers.Csv.OpenLayer(dataDir + "sample.csv"))
{
// print attributes
foreach (var attribute in layer.Attributes)
{
Console.Write($"'{attribute.Name}' ");
}
Console.WriteLine();
// print records
foreach (var feature in layer)
{
var dump = feature.GetValuesDump();
foreach (var item in dump)
{
Console.Write($"'{item}' ");
}
Console.WriteLine();
}
}
//ExEnd: ReadCsvFeatures
}
private static void ReadCsvGeometryFromWkt()
{
Console.WriteLine($"== Start Demo: {nameof(ReadCsvGeometryFromWkt)}");
var dataDir = RunExamples.GetDataDir();
//ExStart: ReadCsvGeometryFromWkt
using (var layer = Drivers.Csv.OpenLayer(dataDir + "geometries.csv",
new CsvOptions()
{
ColumnWkt = "geom_data"
}))
{
// print geometry in wkt format
foreach (var feature in layer)
{
Console.Write($"'{feature.Geometry.AsText()}: ");
Console.WriteLine();
}
}
//ExEnd: ReadCsvGeometryFromWkt
}
private static void ReadCsvPoints()
{
Console.WriteLine($"== Start Demo: {nameof(ReadCsvPoints)}");
var dataDir = RunExamples.GetDataDir();
//ExStart: ReadCsvPoints
using (var layer = Drivers.Csv.OpenLayer(dataDir + "geometries.csv",
new CsvOptions()
{
ColumnX = "x" ,
ColumnY = "y",
ColumnZ = "z",
ColumnM = "m"
}))
{
// print geometry in wkt format
foreach (var feature in layer)
{
Console.Write($"'{feature.Geometry.AsText()}: ");
Console.WriteLine();
}
}
//ExEnd: ReadCsvPoints
}
private static void WriteCsvFeatures()
{
Console.WriteLine($"== Start Demo: {nameof(WriteCsvFeatures)}");
var dataDir = RunExamples.GetDataDir();
//ExStart: WriteCsvFeatures
// apply a custom delimiter and a column for geometry.
var options = new CsvOptions()
{
ColumnWkt = "geom_data",
Delimiter = ';'
};
// create a new CSV layer
using (var layer = Drivers.Csv.CreateLayer(dataDir + "csv_out.csv", options))
{
layer.Attributes.Add(new FeatureAttribute("string_data", AttributeDataType.String));
layer.Attributes.Add(new FeatureAttribute("int_data", AttributeDataType.Integer));
layer.Attributes.Add(new FeatureAttribute("bool_data", AttributeDataType.Boolean));
layer.Attributes.Add(new FeatureAttribute("float_data", AttributeDataType.Double));
Feature feature = layer.ConstructFeature();
feature.SetValue("string_data", "string value");
feature.SetValue("int_data", 10);
feature.SetValue("bool_data", true);
feature.SetValue("float_data", 3.14);
feature.Geometry = new LineString(new[] { new Point(0, 0), new Point(1, 1) });
layer.Add(feature);
Feature feature2 = layer.ConstructFeature();
feature2.SetValue("string_data", "string value2");
feature2.SetValue("int_data", 100);
feature2.SetValue("bool_data", false);
feature2.SetValue("float_data", 3.1415);
feature2.Geometry = Geometry.Null;
layer.Add(feature2);
}
//ExEnd: WriteCsvFeatures
}
}
}