miércoles, enero 06, 2010

Cómo elegir el zoom óptimo en Google Maps

Cuando estamos trabajando con Google Maps usando el objeto GClientGeocoder y más concretamente su función getLocations nos encontramos con el problema del Zoom. Esta función nos devuelve las coordenadas en las que se encuentra una dirección pero no nos dice el zoom idóneo para mostrar el mapa. Necesitamos un zoom diferente si estamos buscando un país como España o una calle como la Gran Vía de Madrid.

Si buscáis por internet veréis que hay gente que utiliza el campo Accuracy para tratar de calcular el zoom. Esto es un error. Viene a ser como mezclar churras con merinas.

Aunque en la documentación no aparezca, el objecto JSON que devuelve la función trae un atributo ExtendedData que es el que usaremos para calcular el mejor zoom.

function _getOptimumZoomForGMap(placemark, objMap){
var optimumZoom;
var bounds = placemark.ExtendedData ? placemark.ExtendedData.LatLonBox : undefined;
if (bounds) {
var llbounds = new GLatLngBounds(
new GLatLng(bounds.south, bounds.west),
new GLatLng(bounds.north, bounds.east));
optimumZoom = objMap.getBoundsZoomLevel(llbounds);
}

return optimumZoom;
}

No hay comentarios:

Publicar un comentario