У нас можуть бути доступні географічні дані в багатьох форматах, які підтримуються різними системами. У деяких випадках нам може знадобитися експортувати географічні дані з формату ESRI Shapefile (SHP) у формат Keyhole Markup Language (KML). Формат Shapefile є одним із найпоширеніших форматів геопросторових векторних даних ESRI, який використовується для відображення географічної інформації. KML — це формат на основі XML, який використовується для обміну географічними даними з користувачами, які не користуються ГІС. Формат KML використовується для відображення географічних даних у Google Earth або Google Maps. У цій статті ми дізнаємося, як конвертувати шейп-файл у KML на C#.
Ця стаття охоплюватиме наступні теми:
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, виконайте наведені нижче дії.
- Ініціалізуйте екземпляр класу ConversionOptions.
- Встановіть DestinationSpatialReferenceSystem як Wgs84.
- Нарешті, викличте метод 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 за допомогою документації. У разі будь-якої неясності зв’яжіться з нами на нашому форумі.