Easy Google Maps: clase PHP para facilitar el uso de la API de Google Maps

12 COMENTARIOS -  Publicado hace 12 meses -  Clasificado en: , ,

Easy Google Maps es una clase para PHP que, como su nombre indica facilita la inclusión de mapas a través de Google Maps en un sitio web. Lo primero que deberemos hacer, para poder utilizar la API de Google Maps es obtener una key o clave para el dominio en el que pensemos utilizar la API.

Una vez tenemos una key podemos invocar un mapa de un modo tan sencillo como:

<?php
require'EasyGoogleMap.class.php';
$key ="XXXXXXXXXX";
$gm = & new EasyGoogleMap($key);
$gm->SetMapZoom(15);
$gm->SetAddress("Colon 22, Valencia");
$gm->SetInfoWindowText("Esta es la primera direcci&oacute;n");
$gm->SetAddress("Periodista Azzati 7, Valencia");
$gm->SetInfoWindowText("Esta es la segunda direcci&oacute;n");
?>
<html>
<head>
<title>EasyGoogleMap</title>
<?php echo $gm->GmapsKey(); ?>
</head>
<body>
<?php echo $gm->MapHolder(); ?>
<?php echo $gm->InitJs(); ?>
<?php echo $gm->UnloadMap(); ?>
</body>
</html>

Donde "XXXXXXXXXX" es la key que acabamos de obtener.
Ver ejemplo en funcionamiento » »

Algunas de las propiedades que podemos establecer son las siguientes:

//Para habilitar/deshabilitar el zoom progresivo.
// De modo predeterminado deshabilitado (FALSE)
$gm->mContinuousZoom = FALSE;

//Para habilitar/deshabilitar La escala del mapa.
// De modo predeterminado habilitado (TRUE)
$gm->mScale = TRUE;

//Para habilitar/deshabilitar el mapa interno.
// De modo predeterminado deshabilitado (FALSE)
$gm->mInset = FALSE;

//Para habilitar/deshabilitar el tipo de mapa.
// De modo predeterminado deshabilitado (FALSE)
$gm->mMapType = FALSE; # default

//Para establecer las dimensiones del mapa
//De modo predeterminado 300px x 300px
$gm->SetMapWidth(500);
$gm->SetMapHeight(500);

//Para establecer el zoom
//De modo predeterminado 13
$gm->SetMapZoom(10);

//Para establecer el tipo de puntero
// De modo predeterminado se utiliza GT_FLAT
$gm->SetMarkerIconStyle('FLAG');
$gm->SetMarkerIconStyle('GT_FLAT');
$gm->SetMarkerIconStyle('GT_PILLOW');
$gm->SetMarkerIconStyle('HOUSE');
$gm->SetMarkerIconStyle('PIN');
$gm->SetMarkerIconStyle('PUSH_PIN');
$gm->SetMarkerIconStyle('STAR');

//Para establecer el color del puntero
// De modo predeterminado se utiliza PACIFICA
$gm->SetMarkerIconColor('PACIFICA');
$gm->SetMarkerIconColor('YOSEMITE');
$gm->SetMarkerIconColor('MOAB');
$gm->SetMarkerIconColor('GRANITE_PINE');
$gm->SetMarkerIconColor('DESERT_SPICE');
$gm->SetMarkerIconColor('CABO_SUNSET');
$gm->SetMarkerIconColor('TAHITI_SEA');
$gm->SetMarkerIconColor('POPPY');
$gm->SetMarkerIconColor('NAUTICA');
$gm->SetMarkerIconColor('DEEP_JUNGLE');
$gm->SetMarkerIconColor('SLATE');
//Establecer el texto del bocadillo informativo
$gm->SetInfoWindowText("Este es el punto uno")

El uso es realmente sencillo. Lo unico que no me acababa de gustar es que apareciese el bocadillo de la primera dirección. Prefiero que aparezcan los bocadillos cuando el usuario hace click. Simplemente cogiendo la clase y comentando estas dos líneas ya lo tendremos,

if ($i===0) 
$ret .= "marker.openInfoWindowHtml(address_$i.infowindowtext);\n";

Ver un segundo ejemplo en funcionamiento » »

Descargar ejemplo completo » »

Algunas entradas relacionadas:

También te puede interesar:

COMENTARIOS

Publicado hace 12 meses
Iñaki -   http://blog.ikhuerta.com

La clase está bien orientada y parece realmente cómoda de usar. Pero con el tiempo que tarda el geocoder en actuar via javaScript creo que le falta algo que haga lanzar el geocoder vía servidor y cachee la respuesta (para no saturar a google con peticiones de la misma dirección). Pero vamos, que me la quedo y si la necesito ya la modificare ;)

Gracias!
Publicado hace 12 meses
willowman -   http://www.puenteromatico.com

Buenisimo, estuve buscando esto. Muchas gracias! Saludos
Publicado hace 12 meses
Pharpe -   http://reflexionespharpianas.blogspot.com

Estoy empezando a interesarme por el PHP, así que ya iré mirando todos los post que tienes poco a poco y ya te iré comentando a medida que pueda
Publicado hace 12 meses
Francisco -   http://www.webintenta.com

#Iñaki: Efectivamente, el geocoder es bastante lento. Lógico por otro lado. Lo peor es que si le vas a pasar un buen número de puntos a localizar has de lanzar las peticiones separadas en el tiempo -unos milisegundos- para que no se ralle, lo que hace más lento todavía el tema.
Yo tengo que realizar un proyecto en el que tengo que situar bastantes puntos y creo que lo que voy a hacer es utilizar el geocoder la primera vez que se lee la dirección y una vez optenidas las coordenadas, grabarlas y leer directamente coordenadas las siguientes veces.

Saludos.
Publicado hace 12 meses
Iñaki -   http://blog.ikhuerta.com

Si, al final esa es siempre la mejor solución. Además tener las coordenadas en BD luego te permite hacer un admin para que el gestor de turno pueda situar bien los puntos que el geocoder no haya acertado del todo (ya sabemos que aun le queda un poco para ser exacto en calles largas y pueblos pequeños).

Lo dicho, gracias por la clase. Me será de utilidad ;)
Publicado hace 11 meses
Daniel -   http://www.leonphp.com

Justo andaba buscando esto , sera un gran plus , para un proyecto en el cual estoy trabajando..

Muchisimas gracias
Publicado hace 11 meses
ricardo -   http://www.forexautomatizado.com

Hola

Mi pregunta es... donde hay que poner este codigo:



if ($i===0)
$ret .= "marker.openInfoWindowHtml(address_$i.infowindowtext);\n";



Saludos !!
Publicado hace 11 meses
Francisco -   http://www.webintenta.com

Lo pone en el post. No es ponerlo, más bien quitarlo o comentarlo. El código está dentro de la clase.

Saludos.
Publicado hace 9 meses
Eduardo -  
Antes que nada gracias por tu post. Super bien explicado y claro. Ahora te molesto con una pregunta... yo quisiera ademas de las marcas dentro del mapa, colocar por fuera las referencias que al clicar en ellas abran el bocadillo correspondiente dentro del mapa. Algo mas o menos asi: http://i43.tinypic.com/2zs00ah.jpg
Muchas gracias !!
Publicado hace 7 meses
Luis -   http://www.accountservs.ec

De que manera puedo configurar para que el bocadillo me muestre en primera instancia una direccion de guayaquil - ecuador?
Como deberia ser mi atributo SetAddress??
Gracias, y por cierto se ve interesante esta librería.
Publicado hace 5 meses
Frank -  
Como podria usarlo sin el Geocoder, solo pasandole las coordenadas? Muchas gracias esta muy buena la clase
Publicado hace 4 meses
hektor -  
Se puede hacer como dice Frnak?? se puede usar pasandole las coordenadas solamente?? saludos
Publicado hace 4 meses
Javier -  
Gente , funciona todo ok nada mas que no puedo ver las marcas en el mapa. Alguna idea ?
Haz un comentario

¡Gracias por dejar tu opinión! Por favor procura que tu comentarios sean apropiados respecto al tema tratado en la entrada; que no sean spam, u ofensivos, de otro modo, serán eliminados. Todos los comentarios serán moderados antes de su publicación por lo que su aparición en la web puede verse aplazada un cierto tiempo. Si deseas realizar algún comentario, crítica o sugerencia sobre la propia web puedes hacer a través de la siguiente dirección de correo: webintenta@webintenta.com