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:
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:
- Inicialize um mapa.
- Atribua a referência espacial Wgs84 ao mapa.
- Abra um shapefile como uma camada vetorial.
- Adicione a camada shapefile ao mapa.
- 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:
- Primeiramente, crie uma instância da classe Map.
- Em seguida, defina o SpatialReferenceSystem como Wgs84.
- Em seguida, defina um simbolizador de linha simples usando a classe SimpleLine.
- Enquanto isso, carregue um shapefile usando o método VectorLayer.Open().
- Depois disso, adicione a camada shapefile ao mapa usando o método Map.Add().
- 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.