Converter Shapefile para SVG em C#

O formato Shapefile é um dos formatos de dados vetoriais geoespaciais mais comuns da ESRI para exibir informações geográficas. Em certos casos, podemos precisar exportar dados geográficos do formato ESRI Shapefile (SHP) para o formato SVG. O SVG é um formato de texto baseado em XML para descrever a aparência de uma imagem. Neste artigo, aprenderemos como converter um shapefile para SVG em C#.

Este artigo deve abordar os seguintes tópicos:

  1. C# Shapefile to SVG Converter
  2. Passos para converter Shapefile em SVG
  3. Renderize ShapeFile para SVG

C# Shapefile to SVG Converter API - Download grátis

Para converter um shapefile para SVG, usaremos a API Aspose.GIS for .NET. Permite exportar shapefile para SVG 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 Map da API é uma coleção de camadas que podem ser renderizadas umas sobre as outras por meio de Renderer. A classe SpatialReferenceSystem fornece uma lista de diferentes sistemas de referência espacial a serem usados para o mapa. Podemos definir um simbolizador de linha vetorial simples usando a classe SimpleLine. Temos a classe VectorLayer que representa uma camada vetorial na API. Podemos carregar o shapefile em uma camada vetorial usando o método Open(string, FileDriver) desta classe. Ele abre a camada para leitura.

Por favor, baixe a DLL da API ou instale-a usando NuGet.

PM> Install-Package Aspose.GIS

Como converter Shapefile para SVG em C#

Podemos facilmente converter um shapefile para SVG usando Aspose.GIS para .NET seguindo os passos abaixo:

  1. Inicialize um mapa.
  2. Atribua a referência espacial Wgs84 ao mapa.
  3. Abra um shapefile como uma camada vetorial.
  4. Adicione a camada shapefile ao mapa.
  5. Renderize o mapa para o formato SVG.

Agora, vamos ver como transformar essas etapas em código C# e converter um arquivo shapefile para o formato SVG.

Renderize ShapeFile para SVG em C#

Por favor, siga os passos abaixo para renderizar um shapefile como SVG:

  1. Primeiramente, crie uma instância da classe Map.
  2. Em seguida, defina o SpatialReferenceSystem como Wgs84.
  3. Em seguida, defina um simbolizador de linha simples usando a classe SimpleLine.
  4. Enquanto isso, carregue um shapefile usando o método VectorLayer.Open().
  5. Depois disso, adicione a camada shapefile ao mapa usando o método Map.Add().
  6. Finalmente, chame o método Map.Render() para salvar como SVG. Ele usa o caminho do arquivo SVG de saída e Renderers.Svg como argumentos.

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

// Este exemplo de código demonstra como converter um shapefile em SVG.
// Diretório de arquivos
string dataDir = "C:\\Files\\GIS\\";

// Inicializar mapa
var map = new Map(800, 400);

// Use o SRS especificado
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;

// Use o estilo especificado para desenhar linhas
// Também temos estilos para pontos, linhas e superfícies.
var symbolizer = new SimpleLine() 
{ 
    Width = Measurement.Pixels(2) 
};

// Abra um shapefile como camada
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);

// Adicionar camada shapefile ao mapa
map.Add(shapefileLayer, symbolizer);

// Renderize o mapa para o formato Svg
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);

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 para SVG em C#. Também vimos como definir o mapa e carregar o shapefile programaticamente. Além disso, você pode explorar como trabalhar com vários outros formatos de arquivo GIS e aprender mais sobre a API usando a documentação. Em caso de qualquer ambiguidade, sinta-se à vontade para nos contatar em nosso fórum de suporte gratuito.

Veja também