Situémonos, usando GoogleMaps en nuestras aplicaciones.

En la línea de los anteriores ejemplos usando ActiveX, ahora presento un ejemplo más elaborado pero muy sencillo de utilizar al mismo tiempo, como integrar los mapas de localización de GoogleMaps en nuestras aplicaciones.

Para ello he construído la clase TGoogleMaps con la cuál he simplificado la integración del sistema en cualquier aplicación, basta con enlazar GoogleMaps.PRG con su XFM, además de WebBrowser.Prg y su CH (como se ha visto en capítulos anteriores) en la lista de ficheros del proyecto y con solo 5 líneas podemos presentar mapas de lo más vistoso en un formulario de Xailer.

De esta manera dotamos a nuestros programas de la posibilidad de poder localizar la dirección de un cliente, desde un botón en el formulario de clientes o la de crear un mapa con la ruta desde nuestras instalaciones hasta la dirección de entrega de un producto, calcular la distancia, etc.

En el Proyecto GoogleMaps que adjunto tenemos un Form1 de ejemplo para poder hacer búsquedas de direcciones y/o rutas desde esta dirección a un destino.

Form

Este formulario es de muestra y después no debéis de integrarlo en vuestra aplicación, ya que si tenéis un formulario de clientes o de proveedores por ejemplo, basta que pongáis un botón junto a la dirección allí tecleada e incluyáis el código que se encuentra en este Form1:

METHOD Button1Click( oSender ) CLASS tForm1

   Local oFrm

   WITH OBJECT oFrm := TGoogleMaps()

       :cDireccion := Alltrim( ::oEdit1:Value ) + " " + Alltrim( ::oEdit2:Value ) + " " + Alltrim( ::oEdit3:Value )
       :cDestino  :=Alltrim( ::oEdit4:Value ) + " " + Alltrim( ::oEdit5:Value ) + " " + Alltrim( ::oEdit6:Value )
       :cTipoMapa := IIf( ::oListBox1:nIndex=1, "M", IIf( ::oListBox1:nIndex = 2, "S", "H" ) )

       :New()
       :cText := "Consultar mapa de " + :cDireccion
      :ShowModal()

   END WITH

RETURN Nil

Como se vé, se instancia un nuevo form, en este caso llamado oFrm con la clase TGoogleMaps, se indica una dirección de origen :cDireccion con la Dirección+” “+Población+” “+C.P. (cuanto más precisos sean los datos mejor nos situará pero si falta alguno como el C.P. hará lo posible).

Opcionalmente podemos indicar un :cDestino con el mismo formato para que trace una ruta desde / hasta, si no lo indicamos solo nos localizará :cDireccion

También podemos indicar mediante una letra el tipo de mapa entre los tres posibles (M)apa normal (S)atelite (H)íbrido, si no se indica por defecto se toma el primero “M”

A continuación creamos el oFrm invocando al constructor :New(), le ponemos un título opcional :cText:= y mostramos el oFrm invocando a :Show() o :Showmodal().

Aparecerá un form que se autoajusta al tamaño del monitor -100 pixel en horizontal -100 pixel en vertical y centrado, donde con las técnicas descritas en artículos anteriores he creado un navegador Web que navega a la URL de GoogleMaps usando los parámetros suministrados y mostrando un vistoso mapa de Google.

Mapa

Otros ejemplos sencillos de uso pueden ser:

//Con dirección y población del cliente

METHOD Button1Click( oSender ) CLASS tForm1

   Local oMapa

   WITH OBJECT oMapa := TGoogleMaps()

      :cDireccion:= ::oDatasetClientes:Direccion + ” “ + ::oDatasetClientes:Poblacion
      :New()
      :ShowModal()

   END WITH

RETURN Nil

//Dando solo población y C.P.

METHOD Button2Click( oSender ) CLASS tForm1

   Local oMapa

   WITH OBJECT oMapa := TGoogleMaps()
      :cDireccion:= “Bermeo 48100”
      :cTipoMapa := ”S”
      :New()
      :cText:="Aquí vive Bingen”
      :ShowModal()
   END WITH

RETURN Nil

//Dando la dirección exacta en el extranjero Alemania

METHOD Button2Click( oSender ) CLASS tForm1

   Local oMapa

   WITH OBJECT oMapa := TGoogleMaps()

      :cDireccion:= “Lichtensteinallee, 1 10787 Berlín”

      :New()
      :ShowModal()

   END WITH

RETURN Nil

Espero que esta clase os parezca útil y le saquéis provecho, yo al menos la estoy usando en casi todos mis programas aunque sea para poner en los formularios con datos de clientes, al lado de las direcciones de estos un botón BtnBmp que muestra la dirección en el mapa.

NOTA para los usuarios de Xailer de América: En el fuente de la clase GoogleMaps.Prg veréis que navega a la URL “http://www.google.es….. por lo tanto se sitúa con muy pocos datos como por ejemplo el nombre de una población, pero en España, aunque si le damos más datos como incluso el país sitúa en cualquier parte del planeta.

Supongo que habrá posibilidad de que obtengan mapas locales mas precisos si utilizan en lugar de google.es sus mapas locales, para saber su extensión local, simplemente entren en Google y pulsen sobre la opción Maps o busquen Google Maps en su buscador, su extensión local aparecerá en la URL del navegador.

En la siguiente entrega veremos como usar controles ActiveX de terceros, no presentes en Windows, cómo instalarlos e integrarlos con Xailer, pero esto tendrá que esperar una semana que me voy de vacaciones….

Salu2.

3 comentarios en “Situémonos, usando GoogleMaps en nuestras aplicaciones.

  1. Bingen

    Por supuesto que no me importa muchas gracias, pero lo he intentado hacer yo y no he sido capaz.
    Ahora que lo has hecho tu voy a ver si lo estudio y lo aprendo a hacerlo.

    Responder
  2. Pingback: xailer.info (esp) » Cómo Crear Citas en Google Calendar desde Xailer

Deja una respuesta

Tu dirección de correo electrónico no será publicada.