Konvertieren Sie Shapefile in SVG in C#

Das Shapefile-Format ist eines der gebräuchlichsten georäumlichen Vektordatenformate von ESRI, das zur Anzeige geografischer Informationen verwendet wird. In bestimmten Fällen müssen wir möglicherweise geografische Daten aus dem ESRI-Shapefile-Format (SHP) in das Format SVG exportieren. Das SVG ist ein XML-basiertes Textformat zur Beschreibung des Aussehens eines Bildes. In diesem Artikel erfahren Sie, wie Sie ein Shapefile in C# in SVG konvertieren.

Dieser Artikel soll folgende Themen behandeln:

  1. C#-Shapefile-zu-SVG-Konverter
  2. Schritte zum Konvertieren von Shapefiles in SVG
  3. ShapeFile in SVG rendern

C#-Shapefile-zu-SVG-Konverter-API – kostenloser Download

Um ein Shapefile in SVG umzuwandeln, verwenden wir die API Aspose.GIS for .NET. Es ermöglicht den Export von Shapefiles in SVG ohne Software wie ArcGIS, ArcMap, QGIS oder Google Earth. Die API ermöglicht auch das Rendern von Karten, das Erstellen, Lesen und Konvertieren von geografischen Daten, die in den unterstützten Dateiformaten verfügbar sind.

Die Klasse Map der API ist eine Sammlung von Ebenen, die über Renderer übereinander gerendert werden können. Die Klasse SpatialReferenceSystem stellt eine Liste verschiedener räumlicher Bezugssysteme bereit, die für die Karte verwendet werden können. Wir können einen einfachen Vektorliniensymbolisierer mit der Klasse SimpleLine definieren. Wir haben die Klasse VectorLayer, die eine Vektorebene in der API darstellt. Wir können das Shapefile mit der Methode Open(string, FileDriver) dieser Klasse in eine Vektorebene laden. Es öffnet die Ebene zum Lesen.

Bitte entweder die DLL der API herunterladen oder sie mit NuGet installieren.

PM> Install-Package Aspose.GIS

So konvertieren Sie Shapefile in SVG in C#

Wir können ein Shapefile mit Aspose.GIS für .NET einfach in SVG konvertieren, indem wir die folgenden Schritte ausführen:

  1. Initialisieren Sie eine Karte.
  2. Weisen Sie der Karte den Raumbezug Wgs84 zu.
  3. Öffnen Sie ein Shapefile als Vektorebene.
  4. Fügen Sie der Karte eine Shapefile-Ebene hinzu.
  5. Rendern Sie die Karte in das SVG-Format.

Sehen wir uns nun an, wie Sie diese Schritte in C#-Code umwandeln und eine Shapefile-Datei in das SVG-Format konvertieren.

ShapeFile in SVG in C# rendern

Bitte befolgen Sie die unten angegebenen Schritte, um ein Shapefile als SVG zu rendern:

  1. Erstellen Sie zunächst eine Instanz der Map-Klasse.
  2. Legen Sie als nächstes das SpatialReferenceSystem als Wgs84 fest.
  3. Definieren Sie dann einen einfachen Liniensymbolisierer mit der SimpleLine-Klasse.
  4. Laden Sie in der Zwischenzeit ein Shapefile mit der Methode VectorLayer.Open().
  5. Fügen Sie danach die Shapefile-Ebene mit der Methode Map.Add() zur Karte hinzu.
  6. Rufen Sie schließlich die Methode Map.Render() auf, um sie als SVG zu speichern. Als Argumente werden der Pfad der ausgegebenen SVG-Datei und Renderers.Svg verwendet.

Das folgende Codebeispiel zeigt, wie Sie ein Shapefile mit C# in SVG konvertieren.

// Dieses Codebeispiel zeigt, wie Sie ein Shapefile in SVG konvertieren.
// Dateiverzeichnis
string dataDir = "C:\\Files\\GIS\\";

// Karte initialisieren
var map = new Map(800, 400);

// Verwenden Sie den angegebenen SRS
map.SpatialReferenceSystem = SpatialReferenceSystem.Wgs84;

// Verwenden Sie den angegebenen Stil, um Linien zu zeichnen
// Wir haben auch Stile für Punkte, Linien und Flächen.
var symbolizer = new SimpleLine() 
{ 
    Width = Measurement.Pixels(2) 
};

// Öffnen Sie ein Shapefile als Ebene
var shapefileLayer = VectorLayer.Open(dataDir + "buildings.shp", Drivers.Shapefile);

// Fügen Sie der Karte eine Shapefile-Ebene hinzu
map.Add(shapefileLayer, symbolizer);

// Rendern Sie die Karte im SVG-Format
map.Render(dataDir + "buildings_out.svg", Renderers.Svg);

Holen Sie sich eine kostenlose Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die Bibliothek ohne Evaluierungseinschränkungen zu testen.

Fazit

In diesem Artikel haben wir gelernt, wie man ein Shapefile in C# in SVG konvertiert. Wir haben auch gesehen, wie man Karten definiert und Shapefiles programmgesteuert lädt. Außerdem können Sie in der Dokumentation erkunden, wie Sie mit mehreren anderen GIS-Dateiformaten arbeiten und mehr über die API erfahren. Bei Unklarheiten können Sie sich gerne in unserem kostenlosen Support-Forum an uns wenden.

Siehe auch