Converti Shapefile in SVG in C#

Il formato Shapefile è uno dei formati di dati vettoriali geospaziali più comuni utilizzati da ESRI per visualizzare informazioni geografiche. In alcuni casi, potrebbe essere necessario esportare i dati geografici dal formato ESRI Shapefile (SHP) al formato SVG. L’SVG è un formato di testo basato su XML per descrivere l’aspetto di un’immagine. In questo articolo impareremo come convertire uno shapefile in SVG in C#.

Questo articolo tratterà i seguenti argomenti:

  1. Convertitore da C# Shapefile a SVG
  2. Passaggi per convertire Shapefile in SVG
  3. Render ShapeFile in SVG

API di conversione da C# Shapefile a SVG - Download gratuito

Per convertire uno shapefile in SVG, utilizzeremo l’API Aspose.GIS for .NET. Consente di esportare shapefile in SVG senza la necessità di software come ArcGIS, ArcMap, QGIS o Google Earth. L’API consente anche il rendering di mappe, la creazione, la lettura e la conversione dei dati geografici disponibili nei formati di file supportati.

La classe Map dell’API è una raccolta di livelli che possono essere visualizzati uno sopra l’altro tramite Renderer. La classe SpatialReferenceSystem fornisce un elenco di diversi sistemi di riferimento spaziale da utilizzare per la mappa. Possiamo definire un semplice simbolizzatore di linee vettoriali usando la classe SimpleLine. Abbiamo la classe VectorLayer che rappresenta un livello vettoriale nell’API. Possiamo caricare lo shapefile in un livello vettoriale usando il metodo Open(string, FileDriver) di questa classe. Apre il livello per la lettura.

Si prega di scaricare la DLL dell’API o installarla utilizzando NuGet.

PM> Install-Package Aspose.GIS

Come convertire Shapefile in SVG in C#

Possiamo facilmente convertire uno shapefile in SVG usando Aspose.GIS per .NET seguendo i passaggi indicati di seguito:

  1. Inizializza una mappa.
  2. Assegnare il riferimento spaziale Wgs84 alla mappa.
  3. Apri uno shapefile come livello vettoriale.
  4. Aggiungi il livello dello shapefile alla mappa.
  5. Rendering della mappa in formato SVG.

Ora, vediamo come trasformare questi passaggi in codice C# e convertire un file shapefile in formato SVG.

Rendering di ShapeFile in SVG in C#

Segui i passaggi indicati di seguito per eseguire il rendering di uno shapefile come SVG:

  1. Innanzitutto, crea un’istanza della classe Map.
  2. Quindi, imposta SpatialReferenceSystem come Wgs84.
  3. Quindi, definisci un simbolizzatore di linea semplice usando la classe SimpleLine.
  4. Nel frattempo, carica uno shapefile usando il metodo VectorLayer.Open().
  5. Successivamente, aggiungi il livello dello shapefile alla mappa utilizzando il metodo Map.Add().
  6. Infine, chiama il metodo Map.Render() per salvare come SVG. Prende il percorso del file SVG di output e Renderers.Svg come argomenti.

L’esempio di codice seguente mostra come convertire uno shapefile in SVG usando C#.

// Questo esempio di codice mostra come convertire uno shapefile in SVG.
// Directory dei file
string dataDir = "C:\\Files\\GIS\\";

// Inizializza mappa
var map = new Map(800, 400);

// Utilizzare l'SRS specificato
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;

// Usa lo stile specificato per disegnare linee
// Abbiamo anche stili per punti, linee e superfici.
var symbolizer = new SimpleLine() 
{ 
    Width = Measurement.Pixels(2) 
};

// Apri uno shapefile come livello
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);

// Aggiungi il livello dello shapefile alla mappa
map.Add(shapefileLayer, symbolizer);

// Rendering della mappa in formato Svg
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);

Ottieni una licenza gratuita

Puoi ottenere una licenza temporanea gratuita per provare la libreria senza limitazioni di valutazione.

Conclusione

In questo articolo, abbiamo imparato come convertire uno shapefile in SVG in C#. Abbiamo anche visto come definire la mappa e caricare lo shapefile a livello di codice. Inoltre, puoi esplorare come lavorare con diversi altri formati di file GIS e saperne di più sull’API utilizzando la documentazione. In caso di ambiguità, non esitare a contattarci sul nostro forum di supporto gratuito.

Guarda anche