KML是Keyhole标记语言的缩写,它是XML表示法的扩展。它是GIS文件格式,用于显示地理信息。可以以编程方式创建KML文件,也可以使用C#语言从其中读取信息。
让我们探索以下与KML文件格式有关的部分:
- 使用C#以编程方式创建KML文件
- 使用C#以编程方式从KML文件中读取功能
Aspose.GIS for .NET API支持使用KML文件以及其他几种受支持的文件格式。让我们安装API来处理基于.NET的应用程序中的矢量文件。
>>你可以点击这里下载Aspose.GIS最新版测试体验。
使用C#以编程方式创建KML文件
KML文件像XML文件一样遵循基于标记的结构。您可以使用KML文件来精确定位位置,计划或跟踪行程以及许多其他重要情况。您可以使用C#通过以下步骤以编程方式创建KML文件:
- 创建一个图层
- 初始化功能的几何形状和属性
- 设定不同属性的值
- 将特征添加到特定图层
以下代码段是有关如何在C#中以编程方式创建KML文件的基本且简单的演示:
// Create a layer
using (var layer = Drivers.Kml.CreateLayer(dataDir + "Kml_File_out.kml"))
{
// Initialize feature for geometry and attributes
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));
// Set value of different attributes
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) });
// Add the feature to a specific Layer
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);
}
使用C#以编程方式从KML文件中读取功能
KML文件的基本功能可能包括地标,描述,路径等。让我们继续上面示例中创建的KML文件。您可以按照以下步骤阅读KML文件的任何功能:
- 使用OpenLayer方法加载输入的KML文件
- 获取功能计数
- 访问特定索引处的功能
- 读取KML文件的功能
以下代码段显示了如何在C#中以编程方式从KML文件中读取功能:
// Load input KML file with OpenLayer method
using (var layer = Drivers.Kml.OpenLayer(dataDir + "Kml_File.kml"))
{
// Get features’ count
int count = layer.Count;
// Access a feature at a specific index
Feature featureAtIndex1 = layer[0];
Console.WriteLine(featureAtIndex1.GetValue("string_data"));
Feature featureAtIndex2 = layer[1];
Console.WriteLine(featureAtIndex2.GetValue("string_data"));
}
如果您有任何疑问或需求,请随时加入Aspose技术交流群(761297826),我们很高兴为您提供查询和咨询。