![convert-geojson-topojson-csharp](images/convert-geojson-topojson-csharp.png#center)
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
- Převeďte GeoJSON na TopoJSON programově pomocí C#
- Převeďte GeoJSON na TopoJSON s kvantizací pomocí C#
- Programově převést TopoJSON na GeoJSON v C#
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ů:
- Načíst vstupní soubor GeoJSON
- 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ů:
- Inicializujte objekt třídy ConversionOptions
- Zadejte kvantizační číslo
- Nebo nastavte vlastnost Transform
- 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ů:
- Načíst vstupní soubor TopoJSON
- 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.