convert-geojson-topojson-csharp

GeoJSON é usado para representar feições geográficas com feições não espaciais. Considerando que, TopoJSON é uma extensão do GeoJSON que utiliza Topologia. Você pode converter GeoJSON para TopoJSON, bem como TopoJSON para GeoJSON de acordo com seus requisitos. Vamos explorar os seguintes casos de uso em detalhes:

Interconversão GeoJSON e TopoJSON – Instalação da API C# .NET

Aspose.GIS for .NET API pode ser usada para manipular ou converter dados geográficos. Você pode configurar facilmente a API baixando seu arquivo DLL da seção Downloads, ou através da galeria NuGet com o seguinte comando de instalação:

PM> Install-Package Aspose.GIS

Converter GeoJSON para TopoJSON programaticamente usando C#

A conversão de arquivos GeoJSON para TopoJSON é útil porque codifica recursos geoespaciais e é menor em tamanho de arquivo. É menor em tamanho de arquivo devido à topologia e eliminando a redundância. Além disso, mesmo quando não há topologia compartilhada, a codificação de precisão fixa é muito mais eficiente do que a codificação de ponto flutuante do formato de arquivo GeoJSON. Você pode converter GeoJSON para TopoJSON com as seguintes etapas:

  1. Carregar arquivo GeoJSON de entrada
  2. Converter GeoJSON para TopoJSON

O trecho de código a seguir mostra como converter GeoJSON para TopoJSON programaticamente usando C#:

// Carregar arquivo GeoJSON de entrada
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

// converter GeoJSON para TopoJSON
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);

Converter GeoJSON para TopoJSON com quantização usando C#

A conversão de GeoJSON para TopoJSON é popular devido à eficiência de precisão fixa e menor tamanho de arquivo. Além disso, a quantização reduz a precisão das coordenadas. Resultantly, ele otimiza o tamanho do arquivo representando as coordenadas como números inteiros. Então você pode converter GeoJSON para TopoJSON com quantização com os passos abaixo:

  1. Inicialize o objeto de classe ConversionOptions
  2. Especifique o número de quantização
  3. Ou defina a propriedade Transform
  4. Converter GeoJSON para TopoJSON com quantização

O código abaixo mostra como converter GeoJSON para TopoJSON com quantização. Ele explica duas abordagens alternativas para a conversão:

// converta GeoJSON para TopoJSON com quantização - transformando duplos em inteiros para reduzir o tamanho do arquivo.

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

// Inicializar o objeto da classe ConversionOptions
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // Existem duas maneiras de definir parâmetros de quantização - com a propriedade Transform ou
        // com número de quantização. Aqui especificamos o número de quantização.
        // O número de quantização especifica o número de valores expressáveis por dimensão em um resultado
        // coordenadas.
        QuantizationNumber = 100_000,

        // Alternativamente, a propriedade 'Transform' pode ser configurada (mas não simultaneamente com o número de quantização).
        // Consulte a especificação TopoJSON para obter mais detalhes sobre o objeto de transformação e a quantização.
        //
        // Transform = new TopoJsonTransform(
        //     xTraduzir: 0,
        //     yTraduzir: 0,
        //     xEscala: 0,0001000010000100001,
        //     yEscala: 0,0001000010000100001),
    }
};

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

Converter TopoJSON para GeoJSON programaticamente em C#

Aspose.GIS para .NET API suporta conversão de arquivos TopoJSON para GeoJSON. Assim, você pode adicionar esse recurso em seus aplicativos .NET. Além disso, os arquivos GeoJSON geralmente são preferidos na manipulação de geometrias do lado do servidor que não requerem topologias. Você pode seguir as seguintes etapas para conversão de TopoJSON para GeoJSON:

  1. Carregar arquivo TopoJSON de entrada
  2. Convertendo TopoJSON para GeoJSON

O código a seguir mostra como converter TopoJSON para GeoJSON programaticamente usando C#:

// Carregar arquivo TopoJSON de entrada
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// Converter TopoJSON para arquivo GeoJSON
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

Conclusão

Neste artigo, você aprendeu as diferenças e a adequação dos formatos de arquivo GeoJSON e TopoJSON. Além disso, você explorou como convertê-los um no outro de acordo com suas necessidades. Aspose.GIS para .NET API pode executar de forma eficiente e rápida a interconversão em seus aplicativos. Além disso, você pode saber mais visitando a API Documentação. Em caso de dúvidas ou preocupações, sinta-se à vontade para nos escrever nos Fóruns de suporte gratuito.

Veja também