convert-geojson-topojson-csharp

GeoJSON використовується для представлення географічних об’єктів із непросторовими об’єктами. Тоді як TopoJSON є розширенням GeoJSON, яке використовує топологію. Ви можете конвертувати GeoJSON у TopoJSON, а також TopoJSON у GeoJSON відповідно до ваших вимог. Давайте детально розглянемо такі випадки використання:

Взаємоперетворення GeoJSON і TopoJSON – встановлення C# .NET API

Aspose.GIS for .NET API можна використовувати для маніпулювання або перетворення географічних даних. Ви можете легко налаштувати API, завантаживши його файл DLL із розділу Завантаження або через галерею NuGet за допомогою такої команди встановлення:

PM> Install-Package Aspose.GIS

Перетворення GeoJSON на TopoJSON програмно за допомогою C#

Перетворення файлів GeoJSON у TopoJSON є корисним, оскільки воно кодує геопросторові характеристики та має менший розмір файлу. Він менший за розміром файлу через топологію та усунення надмірності. Крім того, навіть якщо немає спільної топології, кодування з фіксованою точністю набагато ефективніше, ніж кодування з плаваючою комою у форматі файлу GeoJSON. Ви можете конвертувати GeoJSON у TopoJSON, виконавши такі дії:

  1. Завантажити вхідний файл GeoJSON
  2. Перетворення GeoJSON на TopoJSON

У наступному фрагменті коду показано, як програмно перетворити GeoJSON на TopoJSON за допомогою C#:

// Завантажити вхідний файл GeoJSON
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

// конвертувати GeoJSON у TopoJSON
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);

Перетворення GeoJSON на TopoJSON за допомогою квантування за допомогою C#

Перетворення GeoJSON у TopoJSON популярне через ефективність із фіксованою точністю та менший розмір файлу. Крім того, квантування знижує точність координат. У результаті він оптимізує розмір файлу, представляючи координати як цілі числа. Тож ви можете конвертувати GeoJSON у TopoJSON із квантуванням, виконавши наведені нижче дії.

  1. Ініціалізувати об’єкт класу ConversionOptions.
  2. Вкажіть номер квантування
  3. Або встановіть властивість Transform.
  4. Перетворення GeoJSON на TopoJSON за допомогою квантування

Наведений нижче код показує, як конвертувати GeoJSON у TopoJSON за допомогою квантування. Він пояснює два альтернативні підходи до перетворення:

// конвертувати GeoJSON у TopoJSON із квантуванням — перетворення подвійних значень у цілі числа для зменшення розміру файлу.

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

// Ініціалізація об’єкта класу ConversionOptions
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // Існує два способи встановлення параметрів квантування - за допомогою властивості Transform або
        // з числом квантування. Тут ми вказуємо число квантування.
        // Число квантування вказує кількість виразних значень на розмір у результаті
        // координати.
        QuantizationNumber = 100_000,

        // Крім того, можна встановити властивість «Перетворення» (але не одночасно з числом квантування).
        // Зверніться до специфікації TopoJSON, щоб дізнатися більше про об’єкт перетворення та квантування.
        //
        // Transform = новий TopoJsonTransform(
        //     xTranslate: 0,
        //     yTranslate: 0,
        //     xScale: 0,0001000010000100001,
        //     yScale: 0,0001000010000100001),
    }
};

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

Перетворення TopoJSON на GeoJSON програмним шляхом на C#

API Aspose.GIS for .NET підтримує перетворення файлів TopoJSON у GeoJSON. Тож ви можете додати цю функцію у свої програми .NET. Крім того, файли GeoJSON зазвичай є кращими при маніпулюванні геометріями на стороні сервера, які не потребують топології. Ви можете виконати наступні кроки для перетворення TopoJSON у GeoJSON:

  1. Завантажте вхідний файл TopoJSON
  2. Перетворення TopoJSON в GeoJSON

У наступному коді показано, як програмно перетворити TopoJSON на GeoJSON за допомогою C#:

// Завантажте вхідний файл TopoJSON
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// Перетворіть TopoJSON у файл GeoJSON
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

Висновок

У цій статті ви дізналися про відмінності та придатність форматів файлів GeoJSON і TopoJSON. Крім того, ви дослідили, як перетворити їх один на одного відповідно до ваших вимог. API Aspose.GIS for .NET може ефективно та швидко виконувати взаємоперетворення у ваших програмах. Крім того, ви можете дізнатися більше, відвідавши API Документація. У разі будь-яких запитів або проблем, будь ласка, напишіть нам на безкоштовні форуми підтримки.

Дивись також