Convert-geojson-topojson-csharp

GeoJSON służy do reprezentowania obiektów geograficznych za pomocą obiektów nieprzestrzennych. Podczas gdy TopoJSON jest rozszerzeniem GeoJSON, które wykorzystuje topologię. Możesz przekonwertować GeoJSON na TopoJSON, a także TopoJSON na GeoJSON zgodnie z własnymi wymaganiami. Przyjrzyjmy się szczegółowo następującym przypadkom użycia:

Interkonwersja GeoJSON i TopoJSON – instalacja C# .NET API

Aspose.GIS for .NET API może służyć do manipulowania lub konwertowania danych geograficznych. Możesz łatwo skonfigurować API, pobierając jego plik DLL z sekcji Downloads lub poprzez galerię NuGet za pomocą następującego polecenia instalacyjnego:

PM> Install-Package Aspose.GIS

Konwertuj GeoJSON na TopoJSON programowo przy użyciu C#

Konwersja plików GeoJSON na TopoJSON jest pomocna, ponieważ koduje obiekty geoprzestrzenne i ma mniejszy rozmiar pliku. Ma mniejszy rozmiar pliku ze względu na topologię i eliminację redundancji. Co więcej, nawet jeśli nie ma współużytkowanej topologii, kodowanie z precyzyjną poprawką jest o wiele bardziej wydajne niż kodowanie zmiennoprzecinkowe w formacie pliku GeoJSON. Możesz przekonwertować GeoJSON na TopoJSON, wykonując następujące czynności:

  1. Załaduj wejściowy plik GeoJSON
  2. Konwertuj GeoJSON na TopoJSON

Poniższy fragment kodu pokazuje, jak programowo przekonwertować GeoJSON na TopoJSON przy użyciu języka C#:

// Załaduj wejściowy plik GeoJSON
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

// przekonwertuj GeoJSON na TopoJSON
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);

Konwertuj GeoJSON na TopoJSON z kwantyzacją przy użyciu C#

Konwersja GeoJSON na TopoJSON jest popularna ze względu na wydajność o stałej precyzji i mniejszy rozmiar pliku. Ponadto kwantyzacja zmniejsza precyzję współrzędnych. W rezultacie optymalizuje rozmiar pliku, przedstawiając współrzędne jako liczby całkowite. Możesz więc przekonwertować GeoJSON na TopoJSON z kwantyzacją, wykonując poniższe czynności:

  1. Zainicjuj obiekt klasy ConversionOptions.
  2. Określ numer kwantyzacji
  3. Lub ustaw właściwość Transform.
  4. Konwertuj GeoJSON na TopoJSON z kwantyzacją

Poniższy kod pokazuje, jak przekonwertować GeoJSON na TopoJSON z kwantyzacją. Wyjaśnia dwa alternatywne podejścia do konwersji:

// konwertuj GeoJSON na TopoJSON z kwantyzacją - przekształcanie podwójnych liczb całkowitych w celu zmniejszenia rozmiaru pliku.

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

// Zainicjuj obiekt klasy ConversionOptions
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // Istnieją dwa sposoby ustawienia parametrów kwantyzacji - za pomocą właściwości Transform lub
        // z numerem kwantyzacji. Tutaj określamy numer kwantyzacji.
        // Liczba kwantyzacji określa liczbę możliwych do wyrażenia wartości na wymiar w wyniku
        // współrzędne.
        QuantizationNumber = 100_000,

        // Alternatywnie można ustawić właściwość „Transform” (ale nie jednocześnie z numerem kwantyzacji).
        // Więcej informacji na temat przekształcania obiektu i kwantyzacji można znaleźć w specyfikacji TopoJSON.
        //
        // Przekształć = nowy TopoJsonTransform(
        //     xPrzetłumacz: 0,
        //     yPrzetłumacz: 0,
        //     xSkala: 0.0001000010000100001,
        //     Skala y: 0,0001000010000100001),
    }
};

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

Konwertuj programowo TopoJSON na GeoJSON w C#

Aspose.GIS for .NET API obsługuje konwersję plików TopoJSON do GeoJSON. Możesz więc dodać tę funkcję do swoich aplikacji .NET. Ponadto plik GeoJSON jest zwykle preferowany w manipulowaniu geometriami po stronie serwera, które nie wymagają topologii. Możesz wykonać następujące kroki konwersji TopoJSON na GeoJSON:

  1. Załaduj wejściowy plik TopoJSON
  2. Konwersja TopoJSON na GeoJSON

Poniższy kod pokazuje, jak programowo przekonwertować TopoJSON na GeoJSON przy użyciu języka C#:

// Załaduj wejściowy plik TopoJSON
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// Konwertuj TopoJSON na plik GeoJSON
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

Wniosek

W tym artykule poznałeś różnice i przydatność formatów plików GeoJSON i TopoJSON. Co więcej, zbadałeś, jak przekształcić je w siebie zgodnie z własnymi wymaganiami. Aspose.GIS for .NET API może sprawnie i szybko przeprowadzić interkonwersję w Twoich aplikacjach. Ponadto możesz dowiedzieć się więcej, odwiedzając API Dokumentacja. W przypadku jakichkolwiek pytań lub wątpliwości prosimy o odpisanie do nas na Bezpłatne fora pomocy technicznej.

Zobacz też