convertir-geojson-topojson-csharp

GeoJSON est utilisé pour représenter des entités géographiques avec des entités non spatiales. Alors que TopoJSON est une extension de GeoJSON qui utilise la topologie. Vous pouvez convertir GeoJSON en TopoJSON ainsi que TopoJSON en GeoJSON selon vos besoins. Explorons en détail les cas d’utilisation suivants :

Inter-conversion GeoJSON et TopoJSON – Installation de l’API C# .NET

L’API Aspose.GIS for .NET peut être utilisée pour manipuler ou convertir des données géographiques. Vous pouvez facilement configurer l’API en téléchargeant son fichier DLL depuis la section Téléchargements, ou via la galerie NuGet avec la commande d’installation suivante :

PM> Install-Package Aspose.GIS

Convertir GeoJSON en TopoJSON par programmation à l’aide de C#

La conversion de fichiers GeoJSON en TopoJSON est utile car elle encode les caractéristiques géospatiales et sa taille de fichier est plus petite. Il est plus petit en taille de fichier en raison de la topologie et de l’élimination de la redondance. De plus, même en l’absence de topologie partagée, l’encodage de précision fixe est bien plus efficace que l’encodage en virgule flottante du format de fichier GeoJSON. Vous pouvez convertir GeoJSON en TopoJSON en procédant comme suit :

  1. Charger le fichier GeoJSON d’entrée
  2. Convertir GeoJSON en TopoJSON

L’extrait de code suivant montre comment convertir GeoJSON en TopoJSON par programmation à l’aide de C# :

// Charger le fichier GeoJSON d'entrée
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";

// convertir GeoJSON en TopoJSON
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);

Convertir GeoJSON en TopoJSON avec quantification à l’aide de C#

La conversion GeoJSON en TopoJSON est populaire en raison de l’efficacité à précision fixe et de la taille de fichier moindre. De plus, la quantification réduit la précision des coordonnées. En conséquence, il optimise la taille du fichier en représentant les coordonnées sous forme d’entiers. Vous pouvez donc convertir GeoJSON en TopoJSON avec quantification en suivant les étapes ci-dessous :

  1. Initialiser l’objet de classe ConversionOptions
  2. Spécifier le numéro de quantification
  3. Ou définissez la propriété Transform
  4. Convertir GeoJSON en TopoJSON avec quantification

Le code ci-dessous montre comment convertir GeoJSON en TopoJSON avec quantification. Il explique deux approches alternatives pour la conversion :

// convertir GeoJSON en TopoJSON avec quantification - transformer les doubles en nombres entiers pour réduire la taille du fichier.

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

// Initialiser l'objet de classe ConversionOptions
var options = new ConversionOptions
{
    DestinationDriverOptions = new TopoJsonOptions
    {
        // Il existe deux façons de définir les paramètres de quantification - avec la propriété Transform ou
        // avec numéro de quantification. Ici, nous spécifions le numéro de quantification.
        // Le nombre de quantification spécifie le nombre de valeurs exprimables par dimension dans un résultat
        // coordonnées.
        QuantizationNumber = 100_000,

        // Alternativement, la propriété 'Transform' peut être définie (mais pas simultanément avec le numéro de quantification).
        // Reportez-vous à la spécification TopoJSON pour plus de détails sur l'objet de transformation et la quantification.
        //
        // Transform = new TopoJsonTransform(
        //     xTranslate : 0,
        //     yTraduire : 0,
        //     xÉchelle : 0,0001000010000100001,
        //     yÉchelle : 0,0001000010000100001),
    }
};

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

Convertir TopoJSON en GeoJSON par programmation en C#

L’API Aspose.GIS for .NET prend en charge la conversion de fichiers TopoJSON en GeoJSON. Vous pouvez donc ajouter cette fonctionnalité dans vos applications .NET. De plus, les fichiers GeoJSON sont généralement préférés dans la manipulation côté serveur de géométries qui ne nécessitent pas de topologies. Vous pouvez suivre les étapes suivantes pour la conversion de TopoJSON en GeoJSON :

  1. Charger le fichier TopoJSON d’entrée
  2. Conversion de TopoJSON en GeoJSON

Le code suivant montre comment convertir TopoJSON en GeoJSON par programmation à l’aide de C# :

// Charger le fichier TopoJSON d'entrée
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";

// Convertir le fichier TopoJSON en fichier GeoJSON
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);

Conclusion

Dans cet article, vous avez appris les différences et la pertinence des formats de fichiers GeoJSON et TopoJSON. De plus, vous avez exploré comment les convertir les uns dans les autres selon vos besoins. L’API Aspose.GIS for .NET peut effectuer efficacement et rapidement l’inter-conversion dans vos applications. De plus, vous pouvez en savoir plus en visitant l’API Documentation. En cas de questions ou de préoccupations, n’hésitez pas à nous écrire sur les forums d’assistance gratuits.

Voir également