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
- Konwertuj GeoJSON na TopoJSON programowo przy użyciu C#
- Konwertuj GeoJSON na TopoJSON z kwantyzacją przy użyciu C#
- Konwertuj programowo TopoJSON na GeoJSON w C#
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:
- Załaduj wejściowy plik GeoJSON
- 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:
- Zainicjuj obiekt klasy ConversionOptions.
- Określ numer kwantyzacji
- Lub ustaw właściwość Transform.
- 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:
- Załaduj wejściowy plik TopoJSON
- 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.