convert-geojson-topojson-csharp

GeoJSON wird verwendet, um geografische Merkmale mit nichträumlichen Merkmalen darzustellen. Während TopoJSON eine Erweiterung von GeoJSON ist, die Topology verwendet. Sie können je nach Bedarf GeoJSON in TopoJSON sowie TopoJSON in GeoJSON konvertieren. Lassen Sie uns die folgenden Anwendungsfälle im Detail untersuchen:

Interkonvertierung von GeoJSON und TopoJSON – Installation der C# .NET API

Aspose.GIS for .NET API kann verwendet werden, um geografische Daten zu manipulieren oder zu konvertieren. Sie können die API einfach konfigurieren, indem Sie ihre DLL Datei aus dem Abschnitt Downloads oder über die Galerie NuGet mit dem folgenden Installationsbefehl herunterladen:

PM> Install-Package Aspose.GIS

Konvertieren Sie GeoJSON programmgesteuert mit C# in TopoJSON

Die Dateikonvertierung von GeoJSON in TopoJSON ist hilfreich, da sie Geofunktionen codiert und eine kleinere Dateigröße hat. Aufgrund der Topologie und der Eliminierung von Redundanz ist die Dateigröße kleiner. Darüber hinaus ist die Codierung mit fester Genauigkeit selbst dann, wenn keine gemeinsam genutzte Topologie vorhanden ist, viel effizienter als die Codierung mit Gleitkommazahlen des GeoJSON Dateiformats. Sie können GeoJSON mit den folgenden Schritten in TopoJSON konvertieren:

  1. Eingabe-GeoJSON Datei laden
  2. Konvertieren Sie GeoJSON in TopoJSON

Das folgende code snippet zeigt, wie GeoJSON programmgesteuert mit C# in TopoJSON konvertiert wird:

// Eingabe-GeoJSON Datei laden
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

// Konvertieren Sie GeoJSON in TopoJSON
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);

Konvertieren Sie GeoJSON in TopoJSON mit Quantisierung mit C#

Die Konvertierung von GeoJSON in TopoJSON ist aufgrund der Effizienz mit fester Genauigkeit und der geringeren Dateigröße beliebt. Darüber hinaus verringert die Quantisierung die Genauigkeit der Koordinaten. Dadurch wird die Dateigröße optimiert, indem die Koordinaten als Ganzzahlen dargestellt werden. So können Sie mit den folgenden Schritten GeoJSON in TopoJSON mit Quantisierung konvertieren:

  1. Initialisieren Sie das Klassenobjekt ConversionOptions.
  2. Geben Sie die Quantisierungsnummer an
  3. Oder legen Sie die Eigenschaft Transform fest
  4. Konvertieren Sie GeoJSON mit Quantisierung in TopoJSON

Der folgende Code zeigt, wie GeoJSON mit Quantisierung in TopoJSON konvertiert wird. Es erläutert zwei alternative Vorgehensweisen für die Konvertierung:

// Konvertieren Sie GeoJSON in TopoJSON mit Quantisierung - Umwandlung von Doubles in Ganzzahlen, um die Dateigröße zu reduzieren.

string SampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSampleWithQuantization_out.topojson";

// Objekt der ConversionOptions Klasse initialisieren
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // Es gibt zwei Möglichkeiten, Quantisierungsparameter festzulegen - mit der Transform-Eigenschaft oder
        // mit Quantisierungszahl. Hier geben wir die Quantisierungszahl an.
        // Die Quantisierungszahl gibt die Anzahl der ausdrückbaren Werte pro Dimension in einem Ergebnis an
        // Koordinaten.
        QuantizationNumber = 100_000,

        // Alternativ kann die 'Transform'-Eigenschaft gesetzt werden (jedoch nicht gleichzeitig mit der Quantisierungsnummer).
        // Weitere Einzelheiten zum Transformationsobjekt und zur Quantisierung finden Sie in der TopoJSON-Spezifikation.
        //
        // Transform = new TopoJsonTransform(
        //     xÜbersetzen: 0,
        //     yÜbersetzen: 0,
        //     xSkala: 0,0001000010000100001,
        //     ySkala: 0,0001000010000100001),
    }
};

VectorLayer.Convert(SampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson, options);

Konvertieren Sie TopoJSON programmgesteuert in C# in GeoJSON

Aspose.GIS for .NET API unterstützt die Dateikonvertierung von TopoJSON in GeoJSON. Sie können diese Funktion also in Ihre .NET Anwendungen einfügen. Darüber hinaus werden GeoJSON Dateien normalerweise bei der serverseitigen Manipulation von Geometrien bevorzugt, die keine Topologien erfordern. Sie können die folgenden Schritte für die Konvertierung von TopoJSON in GeoJSON ausführen:

  1. Eingabe-TopoJSON Datei laden
  2. Konvertieren von TopoJSON in GeoJSON

Der folgende Code zeigt, wie TopoJSON programmgesteuert mit C# in GeoJSON konvertiert wird:

// Eingabe-TopoJSON Datei laden
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// Konvertieren Sie TopoJSON in eine GeoJSON Datei
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

Fazit

In diesem Artikel haben Sie die Unterschiede und die Eignung der Dateiformate GeoJSON und TopoJSON kennengelernt. Darüber hinaus haben Sie untersucht, wie Sie sie gemäß Ihren Anforderungen ineinander umwandeln können. Aspose.GIS for .NET API kann die Interkonvertierung in Ihren Anwendungen effizient und schnell durchführen. Darüber hinaus können Sie mehr erfahren, indem Sie die API Dokumentation besuchen. Bei Fragen oder Bedenken können Sie uns gerne in den kostenlosen Support-Foren schreiben.

Siehe auch