GeoJSON используется для представления географических объектов с непространственными объектами. Принимая во внимание, что TopoJSON является расширением GeoJSON, использующим топологию. Вы можете конвертировать GeoJSON в TopoJSON, а также TopoJSON в GeoJSON в соответствии с вашими требованиями. Давайте подробно рассмотрим следующие варианты использования:
- Взаимное преобразование GeoJSON и TopoJSON — установка C# .NET API
- Программное преобразование GeoJSON в TopoJSON с помощью C#
- Преобразование GeoJSON в TopoJSON с квантованием с использованием C#
- Программное преобразование TopoJSON в GeoJSON на C#
Взаимное преобразование 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, выполнив следующие действия:
- Загрузить входной файл GeoJSON
- Конвертировать 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 с квантованием, выполнив следующие действия:
- Инициализировать объект класса ConversionOptions
- Задайте номер квантования
- Или установите свойство Transform
- Преобразование 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:
- Загрузить входной файл TopoJSON
- Преобразование 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 Документация. Если у вас возникнут какие-либо вопросы или проблемы, напишите нам на Форумы бесплатной поддержки.