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:
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:
- Atribua a referência espacial Wgs84 à camada de destino.
- 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:
- Primeiramente, crie uma instância da classe ConversionOptions.
- Depois disso, defina o DestinationSpatialReferenceSystem como Wgs84.
- 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.