convert-geojson-topojson-csharp

GeoJSON se používá pro reprezentaci geografických prvků s neprostorovými prvky. Zatímco TopoJSON je rozšíření GeoJSON, které využívá topologii. GeoJSON můžete převést na TopoJSON a také TopoJSON na GeoJSON podle vašich požadavků. Podívejme se podrobně na následující případy použití:

Vzájemná konverze GeoJSON a TopoJSON – Instalace C# .NET API

Aspose.GIS for .NET API lze použít k manipulaci nebo převodu geografických dat. Rozhraní API můžete snadno nakonfigurovat stažením jeho souboru DLL ze sekce Downloads nebo prostřednictvím galerie NuGet pomocí následujícího instalačního příkazu:

PM> Install-Package Aspose.GIS

Převeďte GeoJSON na TopoJSON programově pomocí C#

Převod souborů GeoJSON na TopoJSON je užitečný, protože kóduje geoprostorové funkce a má menší velikost souboru. Je menší co do velikosti souboru kvůli topologii a odstranění redundance. Navíc, i když neexistuje žádná sdílená topologie, kódování s fixní přesností je mnohem efektivnější než kódování s plovoucí desetinnou čárkou ve formátu souboru GeoJSON. GeoJSON můžete převést na TopoJSON pomocí následujících kroků:

  1. Načíst vstupní soubor GeoJSON
  2. Převést GeoJSON na TopoJSON

Následující fragment kódu ukazuje, jak převést GeoJSON na TopoJSON programově pomocí C#:

// Načíst vstupní soubor GeoJSON
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

// převést GeoJSON na TopoJSON
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);

Převeďte GeoJSON na TopoJSON s kvantizací pomocí C#

Převod GeoJSON na TopoJSON je populární kvůli efektivitě s pevnou přesností a menší velikosti souboru. Navíc kvantizace snižuje přesnost souřadnic. V důsledku toho optimalizuje velikost souboru reprezentací souřadnic jako celých čísel. GeoJSON tedy můžete převést na TopoJSON pomocí kvantizace pomocí následujících kroků:

  1. Inicializujte objekt třídy ConversionOptions
  2. Zadejte kvantizační číslo
  3. Nebo nastavte vlastnost Transform
  4. Převeďte GeoJSON na TopoJSON pomocí kvantizace

Níže uvedený kód ukazuje, jak převést GeoJSON na TopoJSON s kvantizací. Vysvětluje dva alternativní přístupy ke konverzi:

// převést GeoJSON na TopoJSON pomocí kvantizace - transformace dvojnásobků na celá čísla pro zmenšení velikosti souboru.

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

// Inicializujte objekt třídy ConversionOptions
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // Parametry kvantizace lze nastavit dvěma způsoby – pomocí vlastnosti Transform resp
        // s kvantizačním číslem. Zde uvedeme kvantizační číslo.
        // Kvantizační číslo udává počet vyjádřitelných hodnot na dimenzi ve výsledku
        // souřadnice.
        QuantizationNumber = 100_000,

        // Alternativně lze nastavit vlastnost 'Transform' (ne však současně s kvantizačním číslem).
        // Další podrobnosti o objektu transformace a kvantizaci najdete ve specifikaci TopoJSON.
        //
        // Transform = new TopoJsonTransform(
        //     xTranslate: 0,
        //     yTranslate: 0,
        //     xMěřítko: 0,0001000010000100001,
        //     yMěřítko: 0,0001000010000100001),
    }
};

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

Programově převést TopoJSON na GeoJSON v C#

Aspose.GIS for .NET API podporuje konverzi souborů TopoJSON na GeoJSON. Tuto funkci tedy můžete přidat do svých aplikací .NET. Kromě toho jsou soubory GeoJSON obvykle preferovány při manipulaci s geometriemi na straně serveru, které nevyžadují topologie. Pro převod TopoJSON na GeoJSON můžete postupovat podle následujících kroků:

  1. Načíst vstupní soubor TopoJSON
  2. Převod TopoJSON na GeoJSON

Následující kód ukazuje, jak převést TopoJSON na GeoJSON programově pomocí C#:

// Načíst vstupní soubor TopoJSON
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// Převeďte TopoJSON na soubor GeoJSON
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

Závěr

V tomto článku jste se naučili rozdíly a vhodnost formátů souborů GeoJSON a TopoJSON. Navíc jste prozkoumali, jak je převést do sebe podle vašich požadavků. Aspose.GIS for .NET API může efektivně a rychle provádět vzájemnou konverzi ve vašich aplikacích. Kromě toho se můžete dozvědět více, když navštívíte API Dokumentace. V případě jakýchkoli dotazů nebo obav nám neváhejte napsat na Free Support Forums.

Viz také