APIs
APIs
APIs

Trabajando con el API de Google Maps

Mediante el API que nos ofrecen Google Maps los desarrolladores del servicio podremos hacer uso de sus bondades. En este artículo pretendemos explicar los aspectos más relevantes de este API.

Google Maps es un servicio gratuito que nos ofrece Google con mapas desplazables del mundo entero, fotos satelitales, la ruta más corta entre diferentes ubicaciones y muchas características interesantes. Es semejante a Google Earth; una aplicación para Windows, Mac y Linux; pero con la diferencia que Google Maps es fácilmente integrable a cualquier sitio web.

¿Cómo integro un mapa de Google Maps a mi web?

Insertar un mapa en nuestro sitio web es muy simple haciendo uso de la API de Google Maps. Lo primero es solicitar nuestra API Key, debemos especificar en qué URL vamos a utilizar nuestro mapa.

Aunque es recomendable solicitar una para la dirección http://localhost con esta hagamos los ajustes necesarios y una vez que nuestro código esté listo cambiar la API Key por la de nuestro sitio en Internet para publicar la página.

Aquí tenemos una muestra del código que nos proporciona Google Maps para que utilicemos. Es importante destacar que debemos remplazar el texto resaltado en el código: COLOCAR_AQUI_NUESTRA_KEY por nuestro API Key, para que funcione correctamente.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google Maps JavaScript API Example</title>
    <script src="http://maps.google.com/maps?file=api&v=2&key=COLOCAR_AQUI_NUESTRA_KEY"
      type="text/javascript"></script>
    <script type="text/javascript">
    //<![CDATA[
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(37.4419, -122.1419), 13);
      }
    }
    //]]>
    </script>

A continuación utilizaremos este código para explorar algunas, de las múltiples características que podemos explotar con el API de Google Maps.

¿Cómo iniciar el mapa en coordenadas específicas?

En el código que nos ofrece Google Maps para utilizar en nuestra web está predeterminada la ubicación de Palo Alto en Estados Unidos; pero podemos cambiarla estableciendo nuevas coordenadas. En el código siguiente establecimos la ubicación del mapa en la isla Madagascar, al sur de África:

function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 13);
      }
}

Hasta ahí todo está muy bien, pero cómo obtenemos las coordenadas de la ubicación que deseamos. Para esto entremos a www.maps.google.es y posicionémonos donde queremos que aparezca nuestro mapa, luego copiemos el vínculo que aparece en la parte superior derecha del mapa con el texto: “Enlazar con esta página”, que sería algo como esto:

http://maps.google.es/?ie=UTF8&ll=-19.435514,48.603516&spn=17.554213,29.882813&z=5&om=1

En el parámetro ll se almacena la latitud y longitud, respectivamente, de la ubicación que estamos observando. Copiamos esos números, los pegamos en la parte del código del API que explicaba anteriormente y hemos logrado cambiar las coordenadas iniciales de nuestro mapa.

¿Cómo establecemos el nivel de Zoom inicial?

También podemos especificar el nivel de zoom que deseamos que tenga nuestro mapa al mostrarse. Logramos esto variando el segundo parámetro del método setCenter. Por defecto está establecido en 13, pero en el código que mostramos a continuación lo hemos establecido en 5. Mientras más pequeño sea el número más cerca estaremos del mapa.

function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 5);
      }
}

¿Cómo añadir controles?

Quizás nos interese que nuestro mapa tenga controles de zoom o navegación. Pues a continuación explicaremos cómo insertarlos. Simplemente agregaremos una línea dentro de nuestra instrucción IF, con el método addControl de nuestro objeto map, especificando qué tipo de control queremos insertar, como se muestra en el código:

function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 5);
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GOverviewMapControl());
      }
    }

En el ejemplo anterior hemos agregado a nuestro mapa un selector del tipo de mapa (GMapTypeControl), un control de desplazamiento con una barra de zoom (GLargeMapControl), la escala del mapa (GScaleContro) y un mini-mapa en una esquina que nos indica la región que estamos visualizando (GOverviewMapControl). Para mayor información sobre los controles que podemos incluir vea la ayuda de la API.

¿Cómo cambiar el tipo de mapa?

Con el control para seleccionar el tipo de mapa que agregamos podemos seleccionar entre: Mapa, Satélite e Híbrido; pero podemos especificar con cuál queremos que se muestre inicialmente nuestro mapa utilizando el método setMapType del objeto map, que puede tomar los valores: G_MAP_TYPE (Mapa), G_SATELLITE_TYPE (Satélite) y G_HYBRID_TYPE (Híbrido).

En nuestro código de ejemplo insertamos una línea para especificar que nuestro mapa inicie en modo Híbrido.

function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 5);
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GOverviewMapControl());
        map.setMapType(G_HYBRID_TYPE);
      }
    }

¿Cómo insertar marcas a nuestro mapa?

Las marcas son muy útiles para resaltar ubicaciones. Con la función GMarker() podremos crear una marca en el punto que le pasamos como parámetro y la función addOverlay() nos sirve para adicionar la marca al mapa.

En el código siguiente hemos agregado una marca en la posición -19.000514, 46.603516. Aproximadamente el centro de la isla Madagascar.

function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 5);
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GOverviewMapControl());
        map.setMapType(G_HYBRID_TYPE);
        var point = new GLatLng(-19.000514,46.603516);
        map.addOverlay(new GMarker(point));
      }

En el código anterior hemos utilizado la función GLatLng() para declarar un punto en la ubicación que deseamos poner la marca, luego hemos creado una marca con GMarker() y la hemos agregado a nuestro mapa haciendo uso de addOverlay().

¿Cómo agregar etiquetas a nuestra marca?

Siempre es útil que las marcas tengan un texto descriptivo, sobre todo cuando tenemos más de una en nuestro mapa. A continuación explicaremos cómo introducirle una descripción a nuestras marcas.

En el código siguiente utilizamos una función para agregar una etiqueta a nuestra marca. En la variable address guardamos el texto descriptivo de nuestra etiqueta y utilizando la función addtag creamos la marca en el punto point y adicionamos un listener de evento del tipo clic para que se muestre la etiqueta al hacer clic sobre la marca y finalmente agregamos la marca al mapa utilizando addOverlay().

function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(-19.435514, 48.603516), 5);
        map.addControl(new GMapTypeControl());
        map.addControl(new GLargeMapControl());
        map.addControl(new GScaleControl());
        map.addControl(new GOverviewMapControl());
        map.setMapType(G_HYBRID_TYPE);
        function addtag(point, address) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
	marker.openInfoWindowHtml(address); } );
        return marker;
        }
        var point = new GLatLng(-19.000514,46.603516);
        var address = '<b>MADAGASCAR</b><br/><i>Centro de Madagascar</i><br /><a href="http://www.centrodemadagascar.com">Web del Centro de Madagascar</a>';
        var marker = addtag(point, address);
       map.addOverlay(marker);
      }
    }

Con estos últimos retoques al código ya tenemos nuestro archivo listo para ser publicado en el servidor web y que los internautas exploren el planeta a través del mapa que hemos configurado.

A modo de resumen aquí les dejo algunos sitios que implementan el API de Google Maps en sus páginas, así como otros no menos interesantes relacionados con el tema. Si conocen proyectos que utilicen el API, compartan con nosotros el vínculo en un comentario.

  • Google Maps de Noche: Combinando el API de Google Maps con fotos satelitales nocturnas de la NASA, se ha logrado esta vista espectacular.
  • Google Maps Mania: Este es un blog que colecciona todo sobre Google Maps, además muestra los últimos proyectos que se están desarrollando con el API.
  • Últimos Terremotos: Nos muestra los sismos más recientes ocurridos en el planeta, con el nivel de magnitud, la fecha y un enlace con los detalles.
  • Ranking de Hospitales: Nos informa el ranking de los Hospitales valorados según las enfermedades que atienden, además dándole nuestra dirección nos muestra la manera más rápida de llegar.
  • Localizador de Gimnasios: Este mapa localiza el gimnasio más cercano.

Archivo de ejemplo:

Puede descargar el archivo que hemos configurado durante este artículo. Siéntase libre de modificarlo según sus necesidades. Recuerde escribir su propia API Key en el código HTML antes de utilizarlo.

Lecturas recomendadas

Reynier Matos Padilla para Maestros del Web.
Agrega tu comentario | Enlace permanente al artículo

Síguenos en: Twitter @maestros | Facebook Fan page

122 comentarios

Comentarios

Páginas: « 1 [2]

  1. Hugo

    necesito realizar una aplicacion web conectada a una base de datos donde obtenga los nombres de los clientes a los que se tiene que realizar la entrega de mercancia, con la informacion del cliente quisiera saber si es posible indicando el punto de partida cual es la mejor ruta para entregar a cada uno de mis clientes trazando la direccion en el mapa, cabe mencionar que soy nuevo en esto asi que agradeceria me dieran informacion con puntos y comas.

    Saludos y gracias

  2. Ricardo

    Muy buen tutorial.
    Estoy desorrollando una pagina jsp, en donde tengo que dibujar un recorrido (me imagino yo mediante GPolyline) que realizo una movilidad el cual lo tengo guardado en una base de datos de mysql con varias posiciones de latitud y longuitud, reportadas por un gps.
    El tema es que no se como hacerlo, ya que al google maps, mediante javascript no se puede insertar codigo jsp para llamar a la base de datos e insertarle las posiciones para que se “dibuje” el recorrido realizado….
    por lo tanto no se como implementar esto ….
    espero ser claro con mi exlpicacion…
    muchas gracias de antemano

  3. Diego Quinteros

    Muy interesante…
    Logré verlo funcionando todo salvo la Marca (hay una función
    “addtag(point, address)” que por lo que veo no está vinculada con ninguna llamada)

    Seguiré buscando ;-)

  4. juanjo cantero

    Muy buen artículo,grácias por todo.
    Nota: No me funcionan las marcas ¿….porqué….?

  5. Lucy Waves

    Buenos días, señor y señora;
    Le invitamos a Happy Home Loan estamos registrados y aprobados en préstamo, Ofrecemos cualquier tipo de préstamo y cualquier cantidad de loan.At sólo el 3% de interés si usted está interesado en obtener préstamo, le rogamos que rellene el siguiente formulario y en contacto con nosotros a través del correo electrónico a ([email protected])

    Nombre completo;
    País:
    Sexo:
    Cantidad necesaria;
    Ingreso mensual:
    Dirección:
    Número:
    Duración:

    GRACIAS
    Préstamo Hipotecario………

  6. Dvd

    Hola a todos!
    Estoy intentando crear un apartado de mi web, que mis usuarios puedan subir sus rutas, y que aparezcan en el mapa de google.

    Me pueden decir como he de hacerlo?

    Muchas grácias desde Mallorca

  7. enock mike

    Hola,
    Es un placer dirigirme a ustedes en mi agencia.
    Somos una agencia de crédito privado situado en Londres, Reino Unido, estamos buscando personas confiables que son auténticamente necesitadas de préstamos. Por favor, si usted está interesado en realizar transacciones comerciales con nosotros por favor ponte en contacto con nosotros para obtener más información si esta propuesta es aceptable para usted. Por favor vuelva a nosotros, por lo que la compensación se puede hacer por sus servicios como nuestro socio de negocios y determinar su ubicación.
    Ofrecemos los siguientes tipos de préstamos:
    * Préstamos Estudiantiles (Secure y ordinarios)
    * Préstamos Personales (Secure y ordinarios)
    * Préstamos Comerciales (Secure y ordinarios)
    * Préstamo de Consolidación
    La combinación de préstamos y muchos más.
    Envíenos un correo electrónico para obtener más información acerca de nuestros préstamos

    El Sr. Mike Enock
    Director General
    Préstamos y Limited Finanzas
    Número de registro: 05795220
    Domicilio social: Calle 28A cristo, Marple, Stockport, Cheshire, SK6 6DE
    Fecha de constitución: 12/20/2008
    E-mail: [email protected]
    LLENAR EL FORMULARIO DE SOLICITUD DE PRESTAMO SI NECESITA PRESTAMO GENUINO HOY. Su nombre completo :_____________ Edad / Sexo :___________________ Ocupación :________________ Ingresos Mensuales :____________ País :___________________ Teléfono Number______________ Cantidad Required____________ Duration__________________ Propósito del préstamo :___________ ¿Hablas INGLÉS ?_____________

  8. rick

    trabajar con el api de google maps es increible pero tambien lo podemos intentar con mapquest el cual es igual de bueno

  9. Muy buena explicación. En la web http://tapizarcoche.webnode.es hay un mapa de Google, pero ahora se como funciona realmente. Siempre se aprenden cosas nuevas.

  10. Sra. Helen Smith

    Hola,

    Yo soy la señora Helen Smith y un prestamista privado de préstamos y una cooperar financiera de bienes raíces y cualquier tipo de financiación de las empresas. También ofrecen préstamos a particulares, empresas y organismos que cooperen en la tasa de interés del 3% mensual base, términos de préstamo determinante, la cantidad del préstamo entre la suma de 1.500 a 1.000.000. Préstamo para el desarrollo de las empresas una ventaja competitiva / la expansión empresarial.

    Ofrecemos los siguientes tipos de préstamos
    * Préstamos Personales (Secure y ordinarios)
    * Préstamos Comerciales (Secure y ordinarios)
    * Préstamo de Consolidación
    * Combinación de Préstamo
    -Bajo Cero de Down o el Programa de Financiamiento de dinero disponible
    -Gran Refinanciamiento programas con tarifas competitivas, brazos fijos, de interés
    Solamente.
    -Quick Cash de Préstamos: Inicio Líneas de crédito y préstamos segundo
    -Cuenta Propia o Autónomos, declaró: No Ingresos / n de activos.

    PRIMERA INFORMACIÓN NECESARIA SE:

    Nombre completo :…………….

    País :……..

    Estado civil :………..

    Números de teléfono de contacto :……….

    Cantidad necesaria :………..

    Préstamo Duración :…………

    Póngase en contacto con [a través de Formulario de Contacto Sobre] [email protected]

    NO HAY NADA QUE PERDER PERO SU DEUDA Y LOS PROBLEMAS FINANCIEROS!
    Aquí para mostrar el resultado de una mejor manera a la libertad financiera!

    Sra. Helen Smith

  11. Hola agradeceria vuestra ayuda… como puedo utilizar coordenadas del tipo grados minutos y segundos con GLatLng:

    var point = new GLatLng(-19.000514,46.603516);

    Tienes por ahi alguna function que transforme

  12. Mrs.Hope Joza

    NECESITA UN PRÉSTAMO? SI SI CONTACTO VIA EMAIL: ([email protected])
    DEBAJO DE ESTA FORMA EL PRÉSTAMO PARA LLENAR: te estoy ofreciendo todo lo mejor de mi
    conocimientos y su satisfacción está bien, DEBAJO DE ESTA FORMA EL PRÉSTAMO PARA LLENAR
    Aquí:

    1) Names________ completa
    2) Campo :________
    3) Estado :____________
    4) Edad: :__________
    5) Sexo :__________
    6) Teléfono Number______
    7) de la célula Phone________
    8) Ingreso mensual :________
    9) Monto del préstamo necesario :_________
    10) Duración del préstamo :_____________

    Tenga en cuenta que han de rellenar el formulario de solicitud con los datos correctos
    sobre su auto por lo que el préstamo va a ser fácil para que usted reciba en
    time.Thanks y Dios los bendiga a todos.

    Mrs.Hope Joza .

    Correo electrónico:( [email protected] )
    Correo electrónico:[email protected]

  13. larios96

    hola, si puedes!!!

Los comentarios de este post están cerrados. Si quieres seguir la discusión, debatir, criticar, sugerir o expandir el tema te invitamos a hacerlo en tu propio blog, en twitter o donde puedas publicar. No olvides enlazar a este post para que sigamos la conversación y se genere un trackback.