Shapefile in C# in KML konvertieren

Möglicherweise verfügen wir über geografische Daten in vielen Formaten, die von verschiedenen Systemen unterstützt werden. In bestimmten Fällen müssen wir möglicherweise geografische Daten aus dem Format ESRI Shapefile (SHP) in das Format Keyhole Markup Language (KML) exportieren. Das Shapefile-Format ist eines der gängigsten Geovektordatenformate von ESRI, das zur Anzeige geografischer Informationen verwendet wird. KML ist ein XML-basiertes Format, das verwendet wird, um geografische Daten mit Nicht-GIS-Benutzern zu teilen. Das KML-Format wird verwendet, um geografische Daten in Google Earth oder Google Maps anzuzeigen. In diesem Artikel erfahren Sie, wie Sie ein Shapefile in C# in KML konvertieren.

Dieser Artikel soll folgende Themen behandeln:

  1. C#-Shapefile-zu-KML-Konverter
  2. Schritte zum Konvertieren von Shapefiles in KML
  3. Formdatei in KML exportieren

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

Um ein Shapefile in KML zu konvertieren, verwenden wir die API Aspose.GIS for .NET. Es ermöglicht den Export von Shapefiles in KML, ohne dass Software wie ArcGIS, ArcMap, QGIS oder Google Earth erforderlich ist. 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 ConversionOptions der API bietet Optionen zum Konvertieren von Daten zwischen Formaten. Die Klasse SpatialReferenceSystem stellt eine Liste verschiedener räumlicher Bezugssysteme bereit, die zum Zuordnen von Koordinaten zu Orten auf der Erde verwendet werden können. Wir haben die Klasse VectorLayer, die eine Vektorebene in der API darstellt. Die Methode Convert(string, FileDriver, string, FileDriver, ConversionOptions) dieser Klasse konvertiert eine Ebene in ein anderes Format.

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

PM> Install-Package Aspose.GIS

So konvertieren Sie Shapefile in KML in C#

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

  • Weisen Sie dem Ziel-Layer den Wgs84-Raumbezug zu.
  • Laden und konvertieren Sie das Dateiformat von SHP in KML.

Sehen wir uns nun an, wie Sie diese Schritte in C# ausführen, um eine Shapefile-Datei in ein KML-Format zu konvertieren.

ShapeFile in C# in KML exportieren

Bitte befolgen Sie die unten angegebenen Schritte, um Daten aus einem Shapefile in KML zu exportieren:

  1. Initialisieren Sie eine Instanz der ConversionOptions-Klasse.
  2. Legen Sie das DestinationSpatialReferenceSystem als Wgs84 fest.
  3. Rufen Sie schließlich die Methode VectorLayer.Convert() auf, um das Quell-Shapefile in KML zu konvertieren.

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

// Dieses Codebeispiel zeigt, wie Sie ein Shapefile in C# in KML konvertieren.
// Arbeitsverzeichnis
string dataDir = @"C:\Files\GIS\";

// Geben Sie bei Bedarf Konvertierungseinstellungen an. Es ist optional.
ConversionOptions options = null;

// Die Konvertierung kann einen Fehler auslösen, wenn der Ziel-Layer den Wgs84-Raumbezug nicht unterstützt. Muss man also prüfen.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
    // Weisen Sie Wgs84 der Zielebene zu
    options = new ConversionOptions()
    {
        DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
    };
}

// Konvertieren Sie ein Shapefile in KML.
VectorLayer.Convert(dataDir + "Shapefile.shp", Drivers.Shapefile, dataDir + "destination.kml", Drivers.Kml, options);

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 KML konvertiert. Wir haben auch gesehen, wie Konvertierungsoptionen programmgesteuert definiert werden. Außerdem können Sie in der Dokumentation erkunden, wie Sie mit mehreren anderen GIS-Dateiformaten arbeiten und mehr über Aspose.GIS for .NET API erfahren. Bei Unklarheiten können Sie sich gerne in unserem Forum an uns wenden.

Siehe auch