Converter OSM para KML em C#

OpenStreetMap (OSM) é um projeto de código aberto. O objetivo é criar um banco de dados geográfico gratuito e editável de todo o mundo. O arquivo OpenStreetMap (.osm) é um extrato do banco de dados OpenStreetMap armazenado como XML. Em alguns casos, podemos precisar exportar dados de mapa de OSM para exibir no Google Earth. O Google Earth usa arquivos KML para exibir dados geográficos. Neste artigo, aprenderemos como converter um OSM para KML em C#.

Este artigo deve abordar os seguintes tópicos:

  1. Conversor C# OSM para KML
  2. Etapas para converter OSM em KML
  3. Converter OSM em KML

C# OSM para API do conversor KML - Download gratuito

Para converter o arquivo OpenStreetMap (OSM) para KML, usaremos a API Aspose.GIS for .NET. A API permite exportar OSM para KML sem precisar de software como ArcGIS, ArcMap, QGIS ou Google Earth. Também permite renderizar mapas, criar, ler e converter dados geográficos disponíveis nos formatos de arquivo suportados.

A API fornece a classe VectorLayer que representa uma camada vetorial. Ele fornece o Convert(string, FileDriver, string, FileDriver, ConversionOptions) que converte uma camada em um formato diferente. A classe SpatialReferenceSystem fornece uma lista de diferentes sistemas de referência espacial a serem usados para o mapa.

Por favor, faça o download da DLL da API ou instale-a usando NuGet.

PM> Install-Package Aspose.GIS

Como converter OSM para KML em C#

Podemos converter facilmente o arquivo OpenStreetMap (OSM) para KML usando Aspose.GIS para .NET seguindo as etapas abaixo:

  1. Atribua a referência espacial Wgs84 à camada de destino.
  2. Converta o formato de arquivo de OSM para KML.

A seção a seguir descreve como transformar essas etapas em C# e converter um formato OSM para KML.

Converter OSM para KML em C#

Podemos exportar dados do OSM para KML seguindo as etapas abaixo:

  1. Primeiramente, crie uma instância da classe ConversionOptions.
  2. Depois disso, defina o DestinationSpatialReferenceSystem como Wgs84.
  3. Por fim, chame o método VectorLayer.Convert() para converter o OSM de origem em KML.

O exemplo de código a seguir mostra como converter um OSM em KML usando C#.

// Este exemplo de código demonstra como converter OSM em KML.
// Especifique as configurações de conversão, se necessário. É opcional.
ConversionOptions options = null;

// Esta opção atribui Wgs84 à camada de destino.
// A conversão pode gerar erro se a camada de destino não suportar a referência espacial Wgs84. Então precisa verificar.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// Converta o formato de arquivo de OSM para KML.
VectorLayer.Convert("C:\\Files\\sample.osm", Drivers.OsmXml, "C:\\Files\\destination.kml", Drivers.Kml, options);

Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a biblioteca sem limitações de avaliação.

Conclusão

Neste artigo, aprendemos como converter um OSM para KML em C#. Além disso, você pode explorar como trabalhar com vários outros formatos de arquivo GIS e aprender mais sobre a API usando documentação. Em caso de qualquer ambiguidade, sinta-se à vontade para nos contatar em nosso fórum de suporte gratuito.

Veja também