Преобразование OSM в KML на C#

OpenStreetMap (OSM) — это проект с открытым исходным кодом. Он направлен на создание бесплатной редактируемой географической базы данных всего мира. Файл OpenStreetMap (.osm) представляет собой выдержку из базы данных OpenStreetMap, хранящуюся в формате XML. В некоторых случаях нам может потребоваться экспортировать данные карты из OSM для отображения в Google Планета Земля. Google Планета Земля использует файлы KML для отображения географических данных. В этой статье мы узнаем, как преобразовать OSM в KML на C#.

Эта статья должна охватывать следующие темы:

  1. Конвертер C# OSM в KML
  2. Действия по преобразованию OSM в KML
  3. Преобразовать OSM в KML

C# OSM to KML Converter API — скачать бесплатно

Для преобразования файла OpenStreetMap (OSM) в KML мы будем использовать API Aspose.GIS for .NET. 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 для .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, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также