Google Maps v3 API no admite de forma nativa un método getBounds()
para la clase google.maps.Polygon. Esto parece extraño dado el hecho de que la clase google.maps.Map tiene un método fitBounds()
, que es exactamente lo que estás buscando ... Si usas la API de Google Maps con cualquier tipo de frecuencia, entonces esta debería estar en tu bolsa de trucos ::
método
getBounds()
para la clase google.maps.Polygon
google.maps.Polygon.prototype.getBounds = function() {
var bounds = new google.maps.LatLngBounds();
var paths = this.getPaths();
var path;
for (var i = 0; i < paths.getLength(); i++) {
path = paths.getAt(i);
for (var ii = 0; ii < path.getLength(); ii++) {
bounds.extend(path.getAt(ii));
}
}
return bounds;
}
Tener este método a la mano hace que sea muy sencillo para centrar y encajar un polígono en el mapa.
Nota: Si no está familiarizado con getAt()
y getLength()
está bien, son métodos exclusivos de la clase google.maps.MVCArray. Cuando llamas al método getPaths()
de un polígono, devuelve tu matriz de LatLng como un MVCArray mutable de LatLng's ... puedes prepararte sobre MVCArrays aquí - Google Maps v3 API MVCArray class.
En marcha. Aquí está el marco, tendrás que implementar el método prototipo arriba en alguna parte antes de este próximo bit de código.
var map = new google.maps.Map(container, opts); // I'll spare the details on this
var coords = [
new google.maps.LatLng(25.774252, -80.190262)
,new google.maps.LatLng(18.466465, -66.118292)
,new google.maps.LatLng(32.321384, -64.75737)
,new google.maps.LatLng(25.774252, -80.190262)
];
var myPolygon = new google.maps.Polygon({
paths: coords
,strokeColor: "#A80000"
,strokeOpacity: 0.8
,strokeWeight: 1
,fillColor: "#0b2a32"
,fillOpacity: 0.12
});
Con la puesta en escena, todo lo que tendría que hacer para centrar y hacer zoom en este (o cualquier otro) es poligonal ::
map.fitBounds(myPolygon.getBounds());
corto y dulce. Espero que ayude.
-Kevin James
¡Esto ya no es verdad! Maps v3 ha descartado el método getBounds(). – Benjamin
revise este enlace para ampliar el polígono para obtener límites (Google Map V3), http://tutorialspots.com/google-maps-javascript-api-v3-method-polygon-getbounds-515.html – shyammtp