Перетворення OSM на KML на C#

OpenStreetMap (OSM) — проект із відкритим кодом. Його метою є створення безкоштовної географічної бази даних усього світу, яку можна редагувати. Файл OpenStreetMap (.osm) — це фрагмент бази даних OpenStreetMap, що зберігається у форматі XML. У деяких випадках нам може знадобитися експортувати дані карти з OSM для відображення в Google Планета Земля. Google Earth використовує файли KML для відображення географічних даних. У цій статті ми дізнаємося, як конвертувати OSM у KML на C#.

Ця стаття охоплюватиме наступні теми:

  1. Конвертер C# OSM у KML
  2. Кроки для перетворення OSM на KML
  3. Перетворити OSM на KML

C# OSM to KML Converter API – Безкоштовне завантаження

Для перетворення файлу OpenStreetMap (OSM) у KML ми будемо використовувати Aspose.GIS for .NET API. API дозволяє експортувати OSM у KML без програмного забезпечення, наприклад ArcGIS, ArcMap, QGIS або Google Earth. Він також дозволяє відтворювати карти, створювати, читати та перетворювати географічні дані, доступні у підтримуваних форматах файлів.

API надає клас VectorLayer, який представляє векторний шар. Він надає функцію Convert(string, FileDriver, string, FileDriver, ConversionOptions), яка перетворює шар в інший формат. Клас SpatialReferenceSystem надає список різних систем просторової відліки для використання на карті.

Завантажте DLL API або встановіть його за допомогою NuGet.

PM> Install-Package Aspose.GIS

Як конвертувати OSM у KML на C#

Ми можемо легко конвертувати файл OpenStreetMap (OSM) у KML за допомогою Aspose.GIS for .NET, виконавши наведені нижче дії:

  1. Призначте просторову прив’язку Wgs84 до шару призначення.
  2. Перетворення формату файлу з OSM на KML.

У наступному розділі описано, як перетворити ці кроки на C# і конвертувати OSM у формат KML.

Перетворення OSM на KML на C#

Ми можемо експортувати дані з OSM у KML, виконавши наведені нижче дії.

  1. По-перше, створіть екземпляр класу ConversionOptions.
  2. Після цього встановіть DestinationSpatialReferenceSystem як Wgs84.
  3. Нарешті, викличте метод VectorLayer.Convert(), щоб перетворити вихідний OSM на KML.

У наведеному нижче прикладі коду показано, як конвертувати OSM у KML за допомогою C#.

// Цей приклад коду демонструє, як конвертувати OSM у KML.
// За необхідності вкажіть параметри перетворення. Це необов'язково.
ConversionOptions options = null;

// Цей параметр призначає Wgs84 до цільового рівня.
// Перетворення може викликати помилку, якщо цільовий рівень не підтримує просторову прив’язку Wgs84. Тож треба перевірити.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// Перетворення формату файлу з OSM на KML.
VectorLayer.Convert("C:\\Files\\sample.osm", Drivers.OsmXml, "C:\\Files\\destination.kml", Drivers.Kml, options);

Отримайте безкоштовну ліцензію

Ви можете отримати безкоштовну тимчасову ліцензію, щоб спробувати бібліотеку без оціночних обмежень.

Висновок

У цій статті ми дізналися, як конвертувати OSM у KML на C#. Крім того, ви можете дослідити, як працювати з кількома іншими форматами файлів ГІС, і дізнатися більше про API за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також