konvertera-geojson-topojson-csharp

GeoJSON används för att representera geografiska särdrag med icke-rumsliga särdrag. Medan TopoJSON är en förlängning av GeoJSON som använder Topology. Du kan konvertera GeoJSON till TopoJSON såväl som TopoJSON till GeoJSON enligt dina krav. Låt oss undersöka följande användningsfall i detalj:

GeoJSON och TopoJSON inter-konvertering – C# .NET API Installation

Aspose.GIS for .NET API kan användas för att manipulera eller konvertera geografiska data. Du kan enkelt konfigurera API:t genom att ladda ner dess DLL-fil från avsnittet Nedladdningar eller via galleriet NuGet med följande installationskommando:

PM> Install-Package Aspose.GIS

Konvertera GeoJSON till TopoJSON Programmatiskt med C#

GeoJSON till TopoJSON filkonvertering är användbar eftersom den kodar geospatiala funktioner och är mindre i filstorlek. Den är mindre i filstorlek på grund av topologi och eliminerar redundans. Dessutom, även när det inte finns någon delad topologi, är fixprecisionskodningen mycket effektivare än flyttalskodning av GeoJSON-filformat. Du kan konvertera GeoJSON till TopoJSON med följande steg:

  1. Ladda indata GeoJSON-fil
  2. Konvertera GeoJSON till TopoJSON

Följande kodavsnitt visar hur man konverterar GeoJSON till TopoJSON programmatiskt med C#:

// Ladda indata GeoJSON-fil
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

// konvertera GeoJSON till TopoJSON
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);

Konvertera GeoJSON till TopoJSON med kvantisering med C#

GeoJSON till TopoJSON-konvertering är populär på grund av effektiviteten med fast precision och mindre filstorlek. Dessutom minskar kvantisering koordinaternas precision. Resultatet är att den optimerar filstorleken genom att representera koordinaterna som heltal. Så du kan konvertera GeoJSON till TopoJSON med kvantisering med stegen nedan:

  1. Initiera klassobjektet ConversionOptions
  2. Ange kvantiseringsnummer
  3. Eller ställ in egenskapen Transform
  4. Konvertera GeoJSON till TopoJSON med kvantisering

Koden nedan visar hur man konverterar GeoJSON till TopoJSON med kvantisering. Den förklarar två alternativa metoder för konverteringen:

// konvertera GeoJSON till TopoJSON med kvantisering - transformera dubblar till heltal för att minska filstorleken.

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

// Initiera ConversionOptions klassobjekt
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // Det finns två sätt att ställa in kvantiseringsparametrar - med Transform-egenskapen eller
        // med kvantiseringsnummer. Här anger vi kvantiseringsnummer.
        // Kvantiseringsnummer anger antalet uttryckbara värden per dimension i ett resultat
        // koordinater.
        QuantizationNumber = 100_000,

        // Alternativt kan 'Transform'-egenskapen ställas in (men inte samtidigt med kvantiseringsnummer).
        // Se TopoJSON-specifikationen för mer information om transformobjekt och kvantisering.
        //
        // Transform = new TopoJsonTransform(
        //     xÖversätt: 0,
        //     yÖversätt: 0,
        //     xScale: 0,0001000010000100001,
        //     ySkala: 0,0001000010000100001),
    }
};

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

Konvertera TopoJSON till GeoJSON Programmatiskt i C#

Aspose.GIS för .NET API stöder filkonvertering från TopoJSON till GeoJSON. Så du kan lägga till den här funktionen i dina .NET-applikationer. Dessutom är GeoJSON-filer vanligtvis att föredra vid manipulering av geometrier på serversidan som inte kräver topologier. Du kan följa följande steg för konvertering av TopoJSON till GeoJSON:

  1. Ladda indatafilen TopoJSON
  2. Konvertera TopoJSON till GeoJSON

Följande kod visar hur man konverterar TopoJSON till GeoJSON programmatiskt med C#:

// Ladda indatafilen TopoJSON
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// Konvertera TopoJSON till GeoJSON-fil
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

Slutsats

I den här artikeln har du lärt dig skillnaderna och lämpligheten för filformaten GeoJSON och TopoJSON. Dessutom har du utforskat hur du konverterar dem till varandra enligt dina krav. Aspose.GIS för .NET API kan effektivt och snabbt utföra inter-konverteringen i dina applikationer. Dessutom kan du lära dig mer genom att besöka API:et Dokumentation. Om du har några frågor eller funderingar är du välkommen att skriva tillbaka till oss på Free Support Forums.

Se även