OpenStreetMap (OSM) es un proyecto de código abierto. Su objetivo es crear una base de datos geográfica editable y gratuita de todo el mundo. El archivo OpenStreetMap (.osm) es un extracto de la base de datos OpenStreetMap almacenada como XML. En ciertos casos, es posible que necesitemos exportar datos de mapas de OSM para mostrarlos en Google Earth. Google Earth utiliza archivos KML para mostrar datos geográficos. En este artículo, aprenderemos cómo convertir un OSM a KML en C#.
Este artículo cubrirá los siguientes temas:
API de conversión de C# OSM a KML - Descarga gratuita
Para convertir el archivo OpenStreetMap (OSM) a KML, usaremos la API Aspose.GIS para .NET. La API permite exportar OSM a KML sin necesidad de software como ArcGIS, ArcMap, QGIS o Google Earth. También permite la representación de mapas, la creación, la lectura y la conversión de datos geográficos disponibles en los formatos de archivo admitidos.
La API proporciona la clase VectorLayer que representa una capa vectorial. Proporciona Convert(string, FileDriver, string, FileDriver, ConversionOptions) que convierte una capa a un formato diferente. La clase SpatialReferenceSystem proporciona una lista de diferentes sistemas de referencia espacial para usar en el mapa.
Descargue la DLL de la API o instálela usando NuGet.
PM> Install-Package Aspose.GIS
Cómo convertir OSM a KML en C#
Podemos convertir fácilmente el archivo OpenStreetMap (OSM) a KML usando Aspose.GIS para .NET siguiendo los pasos que se detallan a continuación:
- Asigne la referencia espacial Wgs84 a la capa de destino.
- Convierta el formato de archivo de OSM a KML.
La siguiente sección describe cómo transformar estos pasos en C# y convertir un formato OSM a KML.
Convertir OSM a KML en C#
Podemos exportar datos de OSM a KML siguiendo los pasos que se detallan a continuación:
- En primer lugar, cree una instancia de la clase ConversionOptions.
- Después de eso, configure DestinationSpatialReferenceSystem como Wgs84.
- Finalmente, llama al método VectorLayer.Convert() para convertir el OSM fuente a KML.
El siguiente ejemplo de código muestra cómo convertir un OSM a KML usando C#.
// Este ejemplo de código demuestra cómo convertir OSM a KML.
// Especifique la configuración de conversión si es necesario. es opcional
ConversionOptions options = null;
// Esta opción asigna Wgs84 a la capa de destino.
// La conversión puede arrojar un error si la capa de destino no admite la referencia espacial Wgs84. Así que hay que comprobar.
if (Drivers.Shapefile.SupportsSpatialReferenceSystem(SpatialReferenceSystem.Wgs84))
{
options = new ConversionOptions()
{
DestinationSpatialReferenceSystem = SpatialReferenceSystem.Wgs84,
};
}
// Convierta el formato de archivo de OSM a KML.
VectorLayer.Convert("C:\\Files\\sample.osm", Drivers.OsmXml, "C:\\Files\\destination.kml", Drivers.Kml, options);
Obtenga una licencia gratis
Puede obtener una licencia temporal gratuita para probar la biblioteca sin limitaciones de evaluación.
Conclusión
En este artículo, hemos aprendido cómo convertir un OSM a KML en C#. Además, puede explorar cómo trabajar con varios otros formatos de archivo GIS y obtener más información sobre la API utilizando documentación. En caso de cualquier ambigüedad, no dude en contactarnos en nuestro foro de soporte gratuito.