Converter Shapefile em KML em C#

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:

  1. C# Shapefile to KML Converter
  2. Etapas para converter Shapefile em KML
  3. Exportar ShapeFile para KML

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:

  1. Inicialize uma instância da classe ConversionOptions.
  2. Defina o DestinationSpatialReferenceSystem como Wgs84.
  3. 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.

Veja também