Podemos ter dados geográficos disponíveis em vários formatos suportados por vários sistemas. Em certos casos, podemos precisar exportar dados geográficos do formato ESRI Shapefile (SHP) para o formato Keyhole Markup Language (KML). O formato Shapefile é um dos formatos de dados vetoriais geoespaciais mais comuns da ESRI para exibir informações geográficas. O KML é um formato baseado em XML, usado para compartilhar dados geográficos com usuários não GIS. O formato KML é usado para exibir dados geográficos no Google Earth ou no Google Maps. Neste artigo, aprenderemos como converter um shapefile para KML em C#.
Este artigo deve abordar os seguintes tópicos:
C# Shapefile to KML Converter API - Download gratuito
Para converter um shapefile para KML, usaremos a API Aspose.GIS for .NET. Permite exportar shapefile para KML sem precisar de software como ArcGIS, ArcMap, QGIS ou Google Earth. A API também permite a renderização de mapas, criação, leitura e conversão de dados geográficos disponíveis nos formatos de arquivo suportados.
A classe ConversionOptions da API oferece opções para converter dados entre formatos. A classe SpatialReferenceSystem fornece uma lista de diferentes sistemas de referência espacial para usar no mapeamento de coordenadas para lugares na Terra. Temos a classe VectorLayer que representa uma camada vetorial na API. O método Convert(string, FileDriver, string, FileDriver, ConversionOptions) desta classe converte uma camada em um formato diferente.
Por favor, baixe a DLL da API ou instale-a usando NuGet.
PM> Install-Package Aspose.GIS
Como converter Shapefile para KML em C#
Podemos facilmente converter um shapefile para KML usando Aspose.GIS para .NET seguindo as etapas abaixo:
- Atribua a referência espacial Wgs84 à camada de destino.
- Carregue e converta o formato de arquivo de SHP para KML.
Agora, vamos ver como executar essas etapas em C# para converter um arquivo shapefile em um formato KML.
Exportar ShapeFile para KML em C#
Siga as etapas abaixo para exportar dados de um shapefile para KML:
- Inicialize uma instância da classe ConversionOptions.
- Defina o DestinationSpatialReferenceSystem como Wgs84.
- Por fim, chame o método VectorLayer.Convert() para converter o shapefile de origem em KML.
O exemplo de código a seguir mostra como converter um shapefile em KML usando C#.
// Este exemplo de código demonstra como converter um shapefile em KML em C#.
// Diretório de trabalho
string dataDir = @"C:\Files\GIS\";
// Especifique as configurações de conversão, se necessário. É opcional.
ConversionOptions options = null;
// 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))
{
// Atribuir Wgs84 à camada de destino
options = new ConversionOptions()
{
DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
};
}
// Converta um Shapefile em KML.
VectorLayer.Convert(dataDir + "Shapefile.shp", Drivers.Shapefile, dataDir + "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 shapefile em KML em C#. Também vimos como definir as opções de conversão programaticamente. Além disso, você pode explorar como trabalhar com vários outros formatos de arquivo GIS e aprender mais sobre Aspose.GIS para .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no nosso fórum.