convert-geojson-topojson-csharp

GeoJSON viene utilizzato per rappresentare elementi geografici con elementi non spaziali. Considerando che TopoJSON è un’estensione di GeoJSON che utilizza Topology. Puoi convertire GeoJSON in TopoJSON e TopoJSON in GeoJSON secondo le tue esigenze. Esaminiamo in dettaglio i seguenti casi d’uso:

Inter-conversione GeoJSON e TopoJSON – Installazione dell’API C# .NET

L’API Aspose.GIS for .NET può essere utilizzata per manipolare o convertire dati geografici. Puoi configurare facilmente l’API scaricando il suo file DLL dalla sezione Download o tramite la galleria NuGet con il seguente comando di installazione:

PM> Install-Package Aspose.GIS

Converti GeoJSON in TopoJSON a livello di codice usando C#

La conversione di file da GeoJSON a TopoJSON è utile perché codifica le caratteristiche geospaziali ed è di dimensioni inferiori. È più piccolo in termini di dimensioni del file a causa della topologia e dell’eliminazione della ridondanza. Inoltre, anche quando non esiste una topologia condivisa, la codifica di precisione della correzione è molto più efficiente della codifica in virgola mobile del formato di file GeoJSON. Puoi convertire GeoJSON in TopoJSON con i seguenti passaggi:

  1. Carica il file GeoJSON di input
  2. Converti GeoJSON in TopoJSON

Il frammento di codice seguente mostra come convertire GeoJSON in TopoJSON a livello di codice usando C#:

// Carica il file GeoJSON di input
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

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

Converti GeoJSON in TopoJSON con quantizzazione usando C#

La conversione da GeoJSON a TopoJSON è popolare a causa dell’efficienza a precisione fissa e delle dimensioni del file inferiori. Inoltre, la quantizzazione riduce la precisione delle coordinate. Di conseguenza, ottimizza la dimensione del file rappresentando le coordinate come numeri interi. Quindi puoi convertire GeoJSON in TopoJSON con la quantizzazione con i passaggi seguenti:

  1. Inizializza l’oggetto classe ConversionOptions.
  2. Specificare il numero di quantizzazione
  3. Oppure imposta la proprietà Trasforma.
  4. Converti GeoJSON in TopoJSON con quantizzazione

Il codice seguente mostra come convertire GeoJSON in TopoJSON con la quantizzazione. Spiega due approcci alternativi per la conversione:

// converti GeoJSON in TopoJSON con quantizzazione, trasformando i doppi in numeri interi per ridurre le dimensioni del file.

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

// Inizializza l'oggetto della classe ConversionOptions
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // Esistono due modi per impostare i parametri di quantizzazione: con la proprietà Trasforma o
        // con numero di quantizzazione. Qui specifichiamo il numero di quantizzazione.
        // Numero di quantizzazione specifica il numero di valori esprimibili per dimensione in un risultato
        // coordinate.
        QuantizationNumber = 100_000,

        // In alternativa, è possibile impostare la proprietà 'Trasforma' (ma non contemporaneamente al numero di quantizzazione).
        // Fare riferimento alla specifica TopoJSON per maggiori dettagli sulla trasformazione dell'oggetto e sulla quantizzazione.
        //
        // Trasforma = new TopoJsonTransform(
        //     xTraduci: 0,
        //     yTraduci: 0,
        //     xScala: 0.0001000010000100001,
        //     yScala: 0,0001000010000100001),
    }
};

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

Converti TopoJSON in GeoJSON a livello di codice in C#

Aspose.GIS per .NET API supporta la conversione di file da TopoJSON a GeoJSON. Quindi puoi aggiungere questa funzionalità nelle tue applicazioni .NET. Inoltre, i file GeoJSON sono generalmente preferiti nella manipolazione lato server di geometrie che non richiedono topologie. Puoi seguire i seguenti passaggi per la conversione da TopoJSON a GeoJSON:

  1. Carica il file TopoJSON di input
  2. Conversione di TopoJSON in GeoJSON

Il codice seguente mostra come convertire TopoJSON in GeoJSON a livello di codice usando C#:

// Carica il file TopoJSON di input
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// Converti TopoJSON in file GeoJSON
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

Conclusione

In questo articolo, hai appreso le differenze e l’idoneità dei formati di file GeoJSON e TopoJSON. Inoltre, hai esplorato come convertirli l’uno nell’altro secondo le tue esigenze. Aspose.GIS per .NET API può eseguire in modo efficiente e veloce l’inter-conversione nelle tue applicazioni. Inoltre, puoi saperne di più visitando l’API Documentazione. In caso di domande o dubbi, non esitare a scriverci sui Forum di supporto gratuito.

Guarda anche