Nous pouvons avoir des données géographiques disponibles dans de nombreux formats pris en charge par divers systèmes. Dans certains cas, nous pouvons avoir besoin d’exporter des données géographiques du format ESRI Shapefile (SHP) vers le format Keyhole Markup Language (KML). Le format Shapefile est l’un des formats de données vectorielles géospatiales les plus couramment utilisés par ESRI pour afficher des informations géographiques. Le KML est un format basé sur XML, utilisé pour partager des données géographiques avec des utilisateurs non SIG. Le format KML est utilisé pour afficher des données géographiques dans Google Earth ou Google Maps. Dans cet article, nous allons apprendre à convertir un shapefile en KML en C#.
Cet article couvrira les sujets suivants :
- Convertisseur de fichiers de formes C# en KML
- Étapes pour convertir le fichier de formes en KML
- Exporter ShapeFile vers KML
API de conversion C# Shapefile en KML - Téléchargement gratuit
Pour convertir un fichier de formes en KML, nous utiliserons l’API Aspose.GIS for .NET. Il permet d’exporter le fichier de formes vers KML sans avoir besoin d’un logiciel comme ArcGIS, ArcMap, QGIS ou Google Earth. L’API permet également le rendu de cartes, la création, la lecture et la conversion de données géographiques disponibles dans les formats de fichiers pris en charge.
La classe ConversionOptions de l’API fournit des options pour convertir les données entre les formats. La classe SpatialReferenceSystem fournit une liste de différents systèmes de référence spatiale à utiliser pour cartographier les coordonnées de lieux sur Terre. Nous avons la classe VectorLayer qui représente une couche vectorielle dans l’API. La méthode Convert(string, FileDriver, string, FileDriver, ConversionOptions) de cette classe convertit un calque dans un format différent.
Veuillez soit télécharger la DLL de l’API ou l’installer à l’aide de NuGet.
PM> Install-Package Aspose.GIS
Comment convertir un fichier de formes en KML en C#
Nous pouvons facilement convertir un fichier de formes en KML à l’aide d’Aspose.GIS pour .NET en suivant les étapes ci-dessous :
- Attribuez la référence spatiale Wgs84 à la couche de destination.
- Chargez et convertissez le format de fichier de SHP en KML.
Voyons maintenant comment effectuer ces étapes en C# pour convertir un fichier shapefile au format KML.
Exporter ShapeFile vers KML en C#
Veuillez suivre les étapes ci-dessous pour exporter les données d’un fichier de formes vers KML :
- Initialisez une instance de la classe ConversionOptions.
- Définissez DestinationSpatialReferenceSystem sur Wgs84.
- Enfin, appelez la méthode VectorLayer.Convert() pour convertir le fichier de formes source en KML.
L’exemple de code suivant montre comment convertir un fichier de formes en KML à l’aide de C#.
// Cet exemple de code montre comment convertir un fichier de formes en KML en C#.
// Directeur de travail
string dataDir = @"C:\Files\GIS\";
// Spécifiez les paramètres de conversion si nécessaire. C'est facultatif.
ConversionOptions options = null;
// La conversion peut générer une erreur si la couche de destination ne prend pas en charge la référence spatiale Wgs84. Donc faut vérifier.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
// Attribuez Wgs84 à la couche de destination
options = new ConversionOptions()
{
DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
};
}
// Convertir un Shapefile en KML.
VectorLayer.Convert(dataDir + "Shapefile.shp", Drivers.Shapefile, dataDir + "destination.kml", Drivers.Kml, options);
Obtenez une licence gratuite
Vous pouvez obtenir une licence temporaire gratuite pour essayer la bibliothèque sans limitations d’évaluation.
Conclusion
Dans cet article, nous avons appris à convertir un shapefile en KML en C#. Nous avons également vu comment définir les options de conversion par programmation. En outre, vous pouvez découvrir comment travailler avec plusieurs autres formats de fichiers SIG et en savoir plus sur l’API Aspose.GIS pour .NET à l’aide de la documentation. En cas d’ambiguïté, n’hésitez pas à nous contacter sur notre forum.