KML є абревіатурою для Keyhole Markup Language, яка походить від нотації 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#. Так само ви можете дослідити, як працювати з кількома іншими форматами файлів ГІС. Ви можете відвідати Документацію продукту або написати нам на Безкоштовний форум підтримки, щоб обговорити будь-які ваші проблеми. Ми будемо раді вам допомогти!