KML является аббревиатурой языка разметки Keyhole, который является расширением нотации XML. Это формат файла ГИС, который используется для отображения географической информации. Вы можете программно создавать файлы KML, а также считывать из них информацию с помощью языка C#. Давайте рассмотрим следующие разделы, связанные с форматом файла KML:
- Создание или чтение файлов KML — установка API
- Программно создать файл KML с помощью C#
- Чтение функций из файлов KML программно с использованием C#
Создание или чтение файлов KML — установка API
Aspose.GIS for .NET API поддерживает работу с файлами KML наряду с несколькими другими поддерживаемыми форматами файлов. Давайте установим API для управления векторными файлами в приложениях на основе .NET. Вам необходимо загрузить API из раздела Новые версии или из галереи NuGet с помощью следующей команды установки:
PM> Install-Package Aspose.GIS
После настройки API все готово для создания файлов KML или управления ими. Теперь вам не нужно беспокоиться о мелких деталях, потому что вам нужно только делать простые вызовы API. Перейдем к дальнейшим деталям:
Программно создать файл KML с помощью C#
Файлы KML следуют структуре на основе тегов, как и файлы XML. Вы можете использовать файлы KML для точного определения местоположения, планирования или отслеживания ваших поездок и многих других важных сценариев. Вы можете программно создавать файлы KML с помощью C#, выполнив следующие действия:
- Создайте слой
- Инициализировать feature для геометрии и атрибутов
- Установить значение различных атрибутов
- Добавить объект к определенному слою
Следующий фрагмент кода представляет собой базовую и простую демонстрацию того, как программно создавать файлы KML на C#:
// Создать слой
using (var layer = Drivers.Kml.CreateLayer(dataDir + "Kml_File_out.kml"))
{
// Инициализировать функцию для геометрии и атрибутов
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);
}
Чтение функций из файлов KML программно с использованием C#
Основные функции файла KML могут включать метки, описания, пути и т. д. Давайте продолжим работу с файлом KML, который мы создали в приведенном выше примере. Вы можете прочитать любую функцию файла KML, выполнив следующие действия:
- Загрузить входной KML-файл методом OpenLayer
- Получить количество функций
- Доступ к функции по определенному индексу
- Чтение функций файла KML
Фрагмент кода ниже показывает, как программно читать функции из файла KML на C#:
// Загрузить входной файл KML с помощью метода OpenLayer
using (var layer = Drivers.Kml.OpenLayer(dataDir + "Kml_File.kml"))
{
// Получить количество функций
int count = layer.Count;
// Доступ к функции по определенному индексу
Feature featureAtIndex1 = layer[0];
Console.WriteLine(featureAtIndex1.GetValue<string>("string_data"));
Feature featureAtIndex2 = layer[1];
Console.WriteLine(featureAtIndex2.GetValue<string>("string_data"));
}
Вывод
В этой статье мы рассмотрели, как работать с файлами KML. Мы научились создавать файл KML или программно читать его функции с помощью примера кода C#. Точно так же вы можете изучить, как работать с несколькими другими форматами файлов ГИС. Вы можете посетить Документацию по продукту или написать нам на Форум бесплатной поддержки, чтобы обсудить любые волнующие вас вопросы. Мы будем рады помочь вам!