javascript - example - google maps markers icons
Google Maps API v3 establece el nivel de zoom para mostrar un radio determinado? (3)
Creé un mapa donde un usuario ingresa un código postal y un radio (millas) y quiero que el mapa se centre en el punto creado a partir del código postal y solo muestre (aproximadamente) el área que estaría dentro de ese radio. Estoy creando un Círculo con el radio y tratando de que el mapa se ajuste a ese círculo. En este momento se centra correctamente, pero el área que se muestra es mucho más que el radio dado.
me.center_map = function(latlng, r)
{
// latlng is the point of the zipcode
var circ = new google.maps.Circle();
circ.setRadius(r * 1609.0);
circ.setCenter(latlng);
map.setCenter(latlng);
map.fitBounds(circ.getBounds());
// updates markers
google.maps.event.trigger(map,''dragend'');
};
EDITAR: Dibujé el círculo que estoy usando. Idealmente, el mapa se ampliaría al área dentro del radio.
Desde junio de 2017, el método fitBounds tiene un segundo parámetro que representa el tamaño del relleno. Para aquellos que quieren eliminarlo, solo necesitas pasar 0.
Map.map.fitBounds(bounds, 0);
Nuevo método de firma:
fitBounds(bounds:LatLngBounds|LatLngBoundsLiteral, padding?:number)
La llamada a fitBounds () hará zoom al nivel de zoom más pequeño que contenga completamente los límites. Si tuviera que ampliar un nivel de zoom más, el radio no estaría completamente contenido en el mapa.
map.setZoom(map.getZoom() + 1);
Por supuesto, esto depende de lo bueno que se ajuste el radio en particular (en caso de que no sea siempre el mismo)
Para mostrar el área dentro del círculo, uno tendría que construir un rectángulo que tenga sus esquinas en el perímetro del círculo y ajustar la vista del mapa a sus límites.
Por ejemplo, dibujar un círculo visible y un rectángulo transparente con el mismo punto central debería funcionar como lo describe la op.