OpenStreetMap (OSM) — проект із відкритим кодом. Його метою є створення безкоштовної географічної бази даних усього світу, яку можна редагувати. Файл OpenStreetMap (.osm) — це фрагмент бази даних OpenStreetMap, що зберігається у форматі XML. У деяких випадках нам може знадобитися експортувати дані карти з OSM для відображення в Google Планета Земля. Google Earth використовує файли KML для відображення географічних даних. У цій статті ми дізнаємося, як конвертувати OSM у KML на C#.
Ця стаття охоплюватиме наступні теми:
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, виконавши наведені нижче дії:
- Призначте просторову прив’язку Wgs84 до шару призначення.
- Перетворення формату файлу з OSM на KML.
У наступному розділі описано, як перетворити ці кроки на C# і конвертувати OSM у формат KML.
Перетворення OSM на KML на C#
Ми можемо експортувати дані з OSM у KML, виконавши наведені нижче дії.
- По-перше, створіть екземпляр класу ConversionOptions.
- Після цього встановіть DestinationSpatialReferenceSystem як Wgs84.
- Нарешті, викличте метод 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 за допомогою документації. У разі будь-яких неясностей зв’яжіться з нами на нашому безкоштовному форумі підтримки.