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

У нас можуть бути доступні географічні дані в багатьох форматах, які підтримуються різними системами. У деяких випадках нам може знадобитися експортувати географічні дані з формату ESRI Shapefile (SHP) у формат Keyhole Markup Language (KML). Формат Shapefile є одним із найпоширеніших форматів геопросторових векторних даних ESRI, який використовується для відображення географічної інформації. KML — це формат на основі XML, який використовується для обміну географічними даними з користувачами, які не користуються ГІС. Формат KML використовується для відображення географічних даних у Google Earth або Google Maps. У цій статті ми дізнаємося, як конвертувати шейп-файл у KML на C#.

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

  1. Конвертер C# Shapefile у KML
  2. Кроки для перетворення шейп-файлу в KML
  3. Експорт ShapeFile у KML

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

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

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

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

PM> Install-Package Aspose.GIS

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

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

  • Призначте просторову прив’язку Wgs84 до шару призначення.
  • Завантажте та конвертуйте формат файлу з SHP у KML.

Тепер давайте подивимося, як виконати ці дії в C#, щоб перетворити файл шейп-файлу у формат KML.

Експорт ShapeFile у KML у C#

Щоб експортувати дані з шейп-файлу в KML, виконайте наведені нижче дії.

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

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

// Цей приклад коду демонструє, як перетворити шейп-файл на KML у C#.
// Робочий каталог
string dataDir = @"C:\Files\GIS\";

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

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

// Перетворення шейп-файлу на KML.
VectorLayer.Convert(dataDir + "Shapefile.shp", Drivers.Shapefile, dataDir + "destination.kml", Drivers.Kml, options);

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

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

Висновок

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

Дивись також