Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Nick


Contraseña


Nuevo usuario


English

CSharp: Cómo usar mapas geográficos aplicaciones Visual Studio .NET gratuitamente
Visual Studio .NET


Mostramos en este tutorial cómo insertar un mapa geográfico en nuestra aplicación Visual Studio .NET. Indicamos qué componente gratuito usar (GMap.NET), cómo instalarlo en Visual Studio .NET Community 2015 y cómo añadir este componente visual al formulario de nuestra aplicación. Explicamos también un ejemplo de uso de GMap.NET para cambiar el tipo de mapa (Google Satélite, Google Híbrido, Open Street Map, Open Cycle Map, etc.) y cómo cargar una polilínea (ruta o track GPS).



Videotutorial Insertar mapa geográfico en Visual Studio .NET C# gratuitamente

Videotutorial sobre cómo incorporar un mapa geográfico a nuestras aplicaciones desarrolladas en Visual Studio .NET C# C Sharp. Mostramos en este videotutorial cómo añadir mapas a nuestras aplicaciones de forma gratuita usando el componente GMap.NET. Explicamos cómo cargar un mapa y cómo instalar y referenciar el componente en Visual Studio .NET Community:

 

Requisitos para usar mapas geográficos en aplicaciones Visual Studio .NET

Para poder usar mapas geográficos (Google Maps, vista satélite, híbrido, Open Street Map, Open Cycle Map, etc.) en nuestras aplicaciones .NET (tanto C# como Visual Basic .NET) necesitaremos disponer, lógicamente, de Visual Studio .NET, en el siguiente enlace mostramos cómo descargar e instalar este IDE de desarrollo:

También necesitaremos un equipo con conexión a Internet para descargar el componente gratuito GMap.NET.

 

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Accderemos a la web oficial del componente, actualmente en el enlace:

  • https://greatmaps.codeplex.com/releases/view/20235

Y descargaremos el fichero GMap.NET.WindowsForms.zip:

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Una vez descargado lo descomprimiremos:

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

El fichero comprimido contiene los ficheros:

  • Demo.Windows.Forms.exe: aplicación de ejemplo de uso de GMap.NET.
  • GMap.NET.Core.dll: el componente en sí.
  • GMap.NET.Core.xml: fichero de configuración de la librería anterior.
  • GMap.NET.WindowsForms.dll: el componente visual para agregar al formulario.
  • GMap.NET.WindowsForms.xml: fichero de configuración de la librería del componente visual.

Abriremos ahora Visual Studio .NET Community 2015 y crearemos un nuevo proyecto, para ello accederemos al menú "Archivo" - "Nuevo" - "Proyecto":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Elegiremos el tipo de proyecto, en nuestro caso a la izquierda seleccionaremos "Plantillas" - "Visual C#" - "Windows" y a la dercha seleccionaremos "Aplicación de Windows Forms". Introduciremos un nombre para el proyecto, por ejemplo "AjpdSoftMapaCSharp" y pulsaremos "Aceptar":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

El asistente para crear un nuevo proyecto de Visual Studio .NET nos habrá creado nuestra aplicación C# con un formulario inicial:

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Tras la creación del proyecto, lo que haremos ahora será añadir las librerías de GMap.NET a nuestro proyecto y las referencias necesarias. Para ello accederemos con el Explorador de Windows a la carpeta donde hayamos descomprimido el fichero de GMap.NET y copiaremos todas las librearías dll de GMap.NET y los ficheros XML de configuración:

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Pegaremos los ficheros copiados en la carpeta de nuestro proyecto, concretamente en la carpeta bin/debug, en nuestro caso en:

C:/Mis documentos/Visual Studio 2015/Projects/AjpdSoftMapaCSharp/bin/Debug

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Básicamente lo que requerirá nuestra aplicación es disponer, en la misma carpeta del ejecutable, de las librerías DLL de GMap.

Tras colocar las librerías de GMap.NET en la misma carpeta que el ejecutable de la aplicación, el siguiente paso será añadir la referencia a GMap.NET en nuestro proyecto Visual Studio .NET. Para ello, desde Visual Studio, con nuestro proyecto abierto, pulsaremos en el menú "Proyecto" - "Agregar referencia":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

En la ventana del Administrador de referencias pulsaremos en "Examinar":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Navegaremos hacia la carpeta de nuestro proyecto, a la carpeta .../bin/Debug, seleccionaremos la librería GMap.NET.Core.dll y pulsaremos "Agregar":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Repetiremos el proceso para seleccionar la librería GMap.NET.WindowsForms.dll:

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Tras seleccionar las dos librerías de GMap.NET pulsaremos en "Aceptar":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Por último, para disponer del componente visual de GMap.NET, deberemos agregarlo a la ventana de Cuadro de herramientas. Para ello pulsaremos con el botón derecho sobre la ventana de Cuadro de herramientas (si no aparece podemos mostrarla desde el menú "Ver" - "Cuadro de herramientas"), en el menú emergente seleccionaremos "Elegir elementos":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Esperaremos a que finalice el proceso de carga:

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Pulsaremos en la pestaña "Componentes de .NET Framework" y pulsaremos en "Examinar":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Accederemos a la carpeta ../bin/Debug de nuestro proyecto y seleccionaremos la librería GMap.NET.WindowsForms.dll que contiene el control visual GMapControl y pulsaremos "Abrir":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Nos mostrará una advertencia de seguridad, pulsaremos "Sí":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Con el texto:

---------------------------
Microsoft Visual Studio
---------------------------
Advertencia de seguridad: probablemente 'C:/Users/AjpdSoft/Documents/Visual Studio 2015/Projects/AjpdSoftMapaCSharp/AjpdSoftMapaCSharp/bin/Debug/GMap.NET.WindowsForms.dll' se descargó de una ubicación de red y podría dañar el equipo. Cargue ensamblados solo de publicadores en los que confíe.

¿Desea cargarlo de todos modos?
---------------------------
Sí No
---------------------------

Tras añadir "GMapControl" a los componentes de .NET Framework pulsaremos "Aceptar":

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Una vez añadido, en el Cuadro de herramientas, en el grupo "Controles comunes" tendremos disponible GMapControl para añadirlo a nuestro formulario:

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

 

Cómo usar GMap.NET en aplicación Visual Studio .NET C# CSharp

Una vez instalado y agregrada la referencia a GMap.NET podremos usar el componente visual, para ello, desde "Cuadro de herramientas", en "Controles comunes" pulsaremos sobre GMapControl y pulsaremos en el formulario de la aplicación para que nos añada el componente. Una vez añadido lo estiraremos hasta dejarlo al tamaño que deseemos, en este componente se mostrará el mapa:

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Antes de continuar, en el Using de nuestro formulario, referenciaremos el espacio de nombre GMap.NET para poder usarlo, por lo tanto, desde el código fuente de nuestro formulario, añadiremos las siguientes líneas:

using GMap.NET.MapProviders;
using GMap.NET;

Descarga e instalación de GMap.NET en Microsoft Visual Studio .NET Community 2015

Añadiremos un botón (Button) para que al pulsar se cargue el mapa en una longitud y latitud concreta, para ello, en el evento Click del Button añadiremos el siguiente código (teniendo en cuenta que al componente GMapControl lo hemos llamado "mapa" en su propiedad "Name"):

        private void button1_Click(object sender, EventArgs e)
        {
            mapa.DragButton = MouseButtons.Left;
            mapa.CanDragMap = true;
            mapa.MapProvider = GMapProviders.GoogleMap;
            mapa.Position = new PointLatLng(37.983, -1.133);
            mapa.MinZoom = 0;
            mapa.MaxZoom = 24;
            mapa.Zoom = 9;
            mapa.AutoScroll = true;
        }

El código anterior cargará el mapa de Google Maps, podremos cargar otros mapas como:

  • Google Maps Satélite.
  • Google Maps Callejero.
  • Google Maps Híbrido.
  • OpenStreetMap.
  • OpenClycleMap.

Ejemplo de código para cargar fichero GPX en GMap.NET

GPX es un formato de dntercambio de datos GPS, es un esquema XML pensado para transferir datos GPS entre aplicaciones. Se puede usar para describir puntos (waypoints), recorridos (tracks), y rutas (routes). A continuación mostramos un código fuente en C# que nos permitirá dotar a nuestras aplicaciones en Visual Studio .NET C Sharp de la opción de cargar un fichero GPX y mostrar la ruta realizada en el mapa. Para el siguiente código necesitaremos un componente de tipo System.Windows.Forms.OpenFileDialog que agregaremos a nuestro formulario desde el Cuadro de herramientas, llamaremos a este componente "dlg":

Ejemplo de código para cargar fichero GPX en GMap.NET

Añadiremos lógicamente un Button para que al pulsarlo el usuario le muestre la ventana de selección de documento GPX y una vez seleccionado lo cargue en el mapa. Por lo tanto el código para el evento "Click" del Button será:

        private void btCargarGPX_Click(object sender, EventArgs e)
        {
            dlg.CheckPathExists = true;
            dlg.CheckFileExists = false;
            dlg.AddExtension = true;
            dlg.DefaultExt = "gpx";
            dlg.ValidateNames = true;
            dlg.Title = "Cargar archivo GPX";
            dlg.Filter = "Archivos GPX (*.gpx)|*.gpx";
            dlg.FilterIndex = 1;
            dlg.RestoreDirectory = true;

            if(dlg.ShowDialog() == DialogResult.OK)
            {
               try
               {
                  string gpx = File.ReadAllText(dlg.FileName);

                  gpxType r = mapa.Manager.DeserializeGPX(gpx);
                  if(r != null)
                  {
                     if(r.trk.Length > 0)
                     {
                        foreach(var trk in r.trk)
                        {
                           List points = new List();

                           foreach(var seg in trk.trkseg)
                           {
                              foreach(var p in seg.trkpt)
                              {
                                 points.Add(new PointLatLng((double) p.lat, 
                                    (double) p.lon));
                              }
                           }

                           GMapRoute rt = new GMapRoute(points, string.Empty);
                           {
                              rt.Stroke = new Pen(Color.FromArgb(144, Color.Red));
                              rt.Stroke.Width = 5;
                              rt.Stroke.DashStyle = 
                                  System.Drawing.Drawing2D.DashStyle.Solid;
                           }
                           routes.Routes.Add(rt);
                           routes.IsVisibile = true;
                           
                        }
                        mapa.Overlays.Add(routes);
                        mapa.ZoomAndCenterRoutes(null);                        
                     }
                  }
               }
               catch(Exception ex)
               {
                  MessageBox.Show("Error al importar GPX: " + 
ex.Message, "Error importando GPX", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } }

Cambiar de tipo de mapa en GMap.NET

Otra opción que podemos implementar en nuestra aplicación .NET con mapa es la de cambiar el tipo de mapa (satélite, híbrido, callejero, etc.). Para ello añadiremos al formulario un desplegable (System.Windows.Forms.ComboBox). Llamaremos al desplegable "lsMapas" y en su propiedad "Items" añadiremos:

Google Maps Satélite
Google Maps Callejero
Google Maps Híbrido
OpenStreetMap
OpenClycleMap

Cambiar de tipo de mapa en GMap.NET

De forma que el usuario pueda elegir el tipo de mapa a mostrar. Añadiremos un botón (Button) para mostrar el mapa y en el evento "Click" introduciremos el siguiente código:

       private void btRecargarMapa_Click(object sender, EventArgs e)
        {
            if (lsMapas.Text =="Google Maps Satélite")
                mapa.MapProvider = GMapProviders.GoogleSatelliteMap;
            if (lsMapas.Text == "Google Maps Callejero")
                mapa.MapProvider = GMapProviders.GoogleMap;
            if (lsMapas.Text == "Google Maps Híbrido")
                mapa.MapProvider = GMapProviders.GoogleHybridMap;
            if (lsMapas.Text == "OpenStreetMap")
                mapa.MapProvider = GMapProviders.OpenStreetMap;
            if (lsMapas.Text == "OpenClycleMap")
                mapa.MapProvider = GMapProviders.OpenCycleMap;           

            mapa.Refresh();
        }

Aplicación de ejemplo usando GMap.NET con Visual Studio .NET C# en funcionamiento

A continuación mostramos una aplicación desarrollada en C Sharp .NET en funcionamiento que usa el componente GMap.NET para mostrar mapas geográficos y rutas en el mapa:

Aplicación de ejemplo usando GMap.NET con Visual Studio .NET C# en funcionamiento

Vista en modo satélite del mapa:

Aplicación de ejemplo usando GMap.NET con Visual Studio .NET C# en funcionamiento

 

Artículos relacionados

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.

Artículo en inglés.


Anuncios


Enviado el Miércoles, 04 noviembre a las 22:37:18 por ajpdsoft
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+