
Hacía tiempo que venía observando webs 2.0 ( pejm: http://www.trulia.com/home_prices/ ) que utilizaban Heat Maps para mostrar de una manera muy sencilla y clara información geográfica. Cuando revisé el Api de Google para ver cómo se podía conseguir este efecto, me llamó la atención que no estaba soportado de manera nativa y que era necesario realizarlo de una manera más o menos artesanal.
El código
En la siguiente página he preparado un ejemplo donde he destacado algunos países europeos con colores elegidos al azar.
Cómo se crea una silueta
Para mostrar líneas y polígonos en los mapas se utiliza VML (Vector Markup Language), recuerde incluir el VML namespace al comienzo de su documento:
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
La clase GPolygon del API de Google Maps ofrece funciones para dibujar polígonos en el mapa.
Para nuestro ejemplo he creado la función createPolygon que permite dibujar una silueta vectorial en el mapa pasando tres parámetos:
- pts_map: Codificación de las coordenadas de los puntos que conforman el polígono.
- lvls_map: Codificación de los niveles que conforman el polígono.
- num: Valor entre 1 y 6, cada valor tiene un color para la silueta.
Cómo obtener los valores de la silueta
A fecha de hoy no conozco ninguna herramienta que permita obtener de manera automática estos valores por lo que es necesario recurrir a un método un tanto artesanal:
- Acceda a la sección Mis Mapas en http://maps.google.es/ y haga click en la opción Crear un mapa nuevo.
- Ahora viene el trabajo más tedioso, en la zona superior del mapa encontrará un icono para dibujar formas, selecciónelo y comience a pintar los puntos que delimitan la región sobre la que quiere trabajar. Recuerde que cuanto mayor sea el zoom, mejor será la calidad del Heat Map.
- Cuando haya terminado haga doble click y elija un nombre para guardar el polígono.
- En la esquina superior derecha encontrará la opción Enlazar a esta página, copie esta url en su navegador.
- En la nueva página, busque dentro del código HTML el nombre que le dio a su polígono hasta encontrar una cadena similar a esta:
name:"Forma 1",description:"",polylines:[{id:"0",points:"ol|oFxbaS~df@h`]rqNmfg@qxp@o_d@a~Cren@",levels:"BBBBB" - Por tanto la codificación de las coordenadas de nuestro polígono sería: [{id:"0",points:"ol|oFxbaS~df@h`]rqNmfg@qxp@o_d@a~Cren@ y la codificación de los niveles: BBBBB
- El código javascript correspondiente sería:
createPolygon("ol|oFxbaS~df@h`]rqNmfg@qxp@o_d@a~Cren@","BBBBB",5)
Algunas observaciones
Debe tener en cuenta que los Heat Maps consumen bastante resursos de su sistema, un mapa con muchos polígonos o con formas muy complejas pueden sobrecargar el navagador y hacer la página inmanejable.
Puede personalizar el estilo de sus Heats Maps con algunos parámetros como el color, la opacidad, el borde, el relleno, etc. Para ello utilice la función fromEncoded(color?, weight?, opacity?, points, zoomFactor, levels, numLevels)
Puede descargarse el código de ejemplo y utilizarlo líbremente en sus aplicaciones.
Por último recuerde que para poder utilizar el API de Google Maps en sus aplicaciones es necesario que solicite su Key en la sección sign up for an API key.
Artículos relacionados:
- Real Ajax Sexy Curls: Una forma elegante de mostrar el código fuente de nuestra página
- Ajax zoomy: Un Ajax lightbox para su galería de imágenes
- Un emulador de ZX Spectrum en Javascript
- Ajax Lightbox: Una ventana emergente 2.0 en su página web
- Cómo enviar información, datos o parámetros con el método POST sin utilizar formulario
¿Te gustó este artículo? Sígueme en Twitter


7 noviembre, 2007 at 14:11
Muy interesante tu articulo, gracias
7 noviembre, 2007 at 14:26
Muy interesante tu nota
21 enero, 2008 at 22:11
muy bueno
29 febrero, 2008 at 16:21
malo super malo
12 abril, 2008 at 06:50
Me parece bien, es otra forma de aplicar color al mapa , saludos amigo, y sigue adelante
17 septiembre, 2008 at 00:59
Me parece bien, es otra forma de aplicar color al mapa , saludos amigo, y sigue adelante
15 octubre, 2008 at 08:24
me gusta
11 diciembre, 2008 at 19:49
estoy muy interazado en optener imagenes satelitales .. con fines pesqueros .. esta muy interezante
1 junio, 2009 at 20:36
Me interesan muchisimo tus articulos, pero este en particular no lo entendi.
Para que me sirve un mapa con colores? disculpame la ignorancia.
Me interesaria tambien poder obtener asesoramientos de desarrollo de posicionamientos.
saludos
2 junio, 2009 at 19:16
Hola, un mapa de color puede servirte para localizar geográficamente una información, por ejemplo, en mi empresa lo hemos utilizado en alguna ocasión para mostrar en qué países del mundo hay más ordenadores infectados por virus.
12 abril, 2010 at 21:22
Me interesainformacion, mapas y noticias de Mexicali, su Valle y San Felipe, Baja California Mexico.
1 septiembre, 2011 at 16:09
bueno, yo tambien estoy de acuerdo en que google toma importancia a los lincks externos, más aun cuando estos son de la misma temática.
felicitarlos a todos por comentar, siempre es fructifero intercambiar opiniones
sigan adelante ….