top of page

GENERAR PUNTOS DE ARCHIVO KML PARA GOOGLE EARTH EN C#

A continuación se presenta un código en C# para crear un archivo extensión KML para google earth.


using System;
using System.Text;
using System.IO;                          //para stream reader
using System.Windows.Forms;

namespace ResumenDeMacros
{
    class GenerarKML
    {
        public void GenerarKMLserver(string ruta = @"D:\MI punto.kml", string elnombre = "puntos")
        {
            string nombre = "Estatua de la libertad";
            string longitud = "-74.044582";
            string latitud = "40.689174";
            string altitud = "0";
            string encabezado = "";
            string cuerpo = "";
            try
            {
                cuerpo = cuerpo + " <Placemark><name>" + nombre+ "</name><Point><coordinates>" + longitud + "," + latitud + ","+altitud;
                cuerpo = cuerpo + " </coordinates></Point> </Placemark> ";
              
                cuerpo = cuerpo + " </Folder></Document></kml> ";
                encabezado = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + " <kml xmlns=\"http://www.opengis.net/kml/2.2\"> " + " <Document><name> " + elnombre + " </name> <Folder> <name> " + elnombre + " </name> <open> 1 </open> ";

                if (GeneraKML(encabezado + cuerpo, ruta))
                {
                    AbrirAchivo(ruta);
                }
                return;
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
                return;

            }
        }
        bool GeneraKML(string info, string LaRuta = @"D:\MI punto.kml")
        {
            try
            {
                StreamWriter sw = new StreamWriter(LaRuta, false, Encoding.UTF8);
                sw.WriteLine(info);
                sw.Close();
                return true;

            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
                return false;

            }
        }
        public bool AbrirAchivo(string ruta)
        {
            //Preguntar si se desea abrir el archivo KML
            const string message =
             "Kml generado, ¿Desea abrir el archivo en Google Earth?";
            const string caption = "Abrir KML";
            var result = MessageBox.Show(message, caption,
                                         MessageBoxButtons.YesNo,
                                         MessageBoxIcon.Question);
            

            if (result == DialogResult.No)
            {
                return false;
            }
            else
            {
                System.Diagnostics.Process.Start(ruta);
                return true;

            }
        }
    }
}

 

bottom of page