Convertir Shapefile a SVG en C#

El formato Shapefile es uno de los formatos de datos vectoriales geoespaciales más comunes de ESRI que se utiliza para mostrar información geográfica. En ciertos casos, es posible que necesitemos exportar datos geográficos del formato ESRI Shapefile (SHP) al formato SVG. El SVG es un formato de texto basado en XML para describir la apariencia de una imagen. En este artículo, aprenderemos cómo convertir un archivo de forma a SVG en C#.

Este artículo cubrirá los siguientes temas:

  1. Convertidor de archivo de forma de C# a SVG
  2. Pasos para convertir Shapefile a SVG
  3. Renderizar ShapeFile a SVG

C# Shapefile to SVG Converter API - Descarga gratuita

Para convertir un archivo de forma a SVG, usaremos la API Aspose.GIS para .NET. Permite exportar shapefile a SVG sin necesidad de software como ArcGIS, ArcMap, QGIS o Google Earth. La API también permite la representación de mapas, la creación, la lectura y la conversión de datos geográficos disponibles en los formatos de archivo admitidos.

La clase Map de la API es una colección de capas que se pueden representar una encima de la otra a través de Renderer. La clase SpatialReferenceSystem proporciona una lista de diferentes sistemas de referencia espacial para usar en el mapa. Podemos definir un símbolo de línea vectorial simple usando la clase SimpleLine. Tenemos la clase VectorLayer que representa una capa vectorial en la API. Podemos cargar el archivo de forma en una capa vectorial utilizando el método Open(string, FileDriver) de esta clase. Abre la capa para lectura.

Descargue la DLL de la API o instálela usando NuGet.

PM> Install-Package Aspose.GIS

Cómo convertir Shapefile a SVG en C#

Podemos convertir fácilmente un archivo de forma a SVG usando Aspose.GIS para .NET siguiendo los pasos que se detallan a continuación:

  1. Inicializar un mapa.
  2. Asigne la referencia espacial Wgs84 al mapa.
  3. Abra un archivo de forma como una capa vectorial.
  4. Agregue una capa de shapefile al mapa.
  5. Renderice el mapa en formato SVG.

Ahora, veamos cómo transformar estos pasos en código C# y convertir un archivo de forma a formato SVG.

Renderizar ShapeFile a SVG en C#

Siga los pasos que se indican a continuación para representar un archivo de forma como SVG:

  1. En primer lugar, cree una instancia de la clase Map.
  2. A continuación, configure SpatialReferenceSystem como Wgs84.
  3. Luego, defina un símbolo de línea simple usando la clase SimpleLine.
  4. Mientras tanto, cargue un archivo de forma utilizando el método VectorLayer.Open().
  5. Después de eso, agregue la capa del archivo de forma al mapa usando el método Map.Add().
  6. Finalmente, llame al método Map.Render() para guardar como SVG. Toma la ruta del archivo SVG de salida y Renderers.Svg como argumentos.

El siguiente ejemplo de código muestra cómo convertir un archivo de forma a SVG usando C#.

// Este ejemplo de código demuestra cómo convertir un archivo de forma a SVG.
// directorio de archivos
string dataDir = "C:\\Files\\GIS\\";

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

// Usar el SRS especificado
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;

// Usar el estilo especificado para dibujar líneas
// También tenemos estilos para puntos, líneas y superficies.
var symbolizer = new SimpleLine() 
{ 
    Width = Measurement.Pixels(2) 
};

// Abrir un archivo de forma como capa
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);

// Agregar capa de shapefile al mapa
map.Add(shapefileLayer, symbolizer);

// Renderizar el mapa a formato Svg
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.

Conclusión

En este artículo, hemos aprendido cómo convertir un archivo de forma a SVG en C#. También hemos visto cómo definir el mapa y cargar el archivo de formas mediante programación. Además, puede explorar cómo trabajar con varios otros formatos de archivo GIS y obtener más información sobre la API utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en nuestro foro de soporte gratuito.

Ver también