конвертировать-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(
        //     хПеревести: 0,
        //     yПеревести: 0,
        //     xScale: 0,0001000010000100001,
        //     yScale: 0,0001000010000100001),
    }
};

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

Программное преобразование TopoJSON в GeoJSON на C#

Aspose.GIS for .NET API поддерживает преобразование файлов 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. Кроме того, вы узнали, как преобразовать их друг в друга в соответствии с вашими требованиями. Aspose.GIS for .NET API может эффективно и быстро выполнять взаимные преобразования в ваших приложениях. Кроме того, вы можете узнать больше, посетив API Документация. Если у вас возникнут какие-либо вопросы или проблемы, напишите нам на Форумы бесплатной поддержки.

Смотрите также