Ajustar el centro y el zoom de un listado de puntos con Google Maps

Guardar este artículo en Delicious Compartir este artículo en Twitter Compartir este artículo en Facebook

Sé que ando tarde, pero son cosas que pasan. Cuando tenía que mostrar un listado de puntos en un mapa usando la API de Google Maps, siempre he tenido ciertos problemas para ajustar en lo posible el mapa a los puntos mostrados. Es decir, encontraba problemas en elegir el centro y el zoom exacto para que se vieran todos los puntos lo más cerca posible. Para conseguirlo usaba un par de funciones en PHP y realizaba el cálculo server side, aunque no siempre conseguía el resultado perfecto.

Bueno, pues hace poco que me he enterado que la propia API de Google Maps te permite hacerlo sin muchas complicaciones. Así que por si acaso hay por ahí algún despistadillo como yo que se páis que lo podéis hacer de la siguiente manera (más abajo hay un ejemplo completo):

/* Primero seteamos el centro a cualquier punto */
map.setCenter(new GLatLng(0,0),0);

/* Creamos un objeto vacio GLatLngBounds() */
var bounds = new GLatLngBounds();

/* Por cada uno de los puntos a incluir en el mapa extendemos los límites del objeto */
/* En este caso latlng debería ser un objeto GLatLng */
/* Ejemplo: var latlng = new GLatLng(43, -2); */
bounds.extend(latlng);

/* Cuando hayamos incluido todos los puntos seteamos el centro y el zoom usando el objeto 'bounds' */
map.setZoom(map.getBoundsZoomLevel(bounds));
map.setCenter(bounds.getCenter());

Su modo de empleo se puede ver mejor en el siguiente ejemplo. Aprovechando que hoy se jugará la final de Copa, he creado un pequeño mapita con los puntos de Bilbao donde habrá pantallas gigantes para seguir el partido de mi querido Athletic contra el Barça, el zoom y el centro del mapa se calculan usando el método que he explicado más arriba.

http://www.berriart.com/examples/ajustar-centro-y-zoom-google-maps.html

Y ya puestos, os comento a los twitteros del Athletic que podéis conseguir una camiseta oficial gracias a Bilbao.bi si estos días comentáis la final por Twitter. Para obtener más información seguir el siguiente enlace.

Si estos días no me véis por la internete es que hemos ganado la copa ;) Athletic, beti zurekin!

athletic campeon de copa

1 Comentario
  1. MetalAgent

    “Si estos días no me véis por la internete es que hemos ganado la copa”

    Jejeje, me hace mucha gracia que los futboleros siempre hablais en primera persona cuando se trata de ganar y en tercera cuando vuestro equipo pierden: “hemos ganado/han perdido”

Deja un comentario