2016-05-13 3 views

ответ

1

Существует функция map.fitBounds(my_bounds), которая устанавливает, что область просмотра содержит заданные границы. Он установил бы карту на самый высокий уровень масштабирования, в котором вы можете увидеть все границы.

Для этого вам необходимо определить границы вашего многоугольника. Если вы используете google.maps.Polygon для отображения ваших полигонов, ознакомьтесь с this solution.

В этом случае вам придется:

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; 
} 

... 
map.fitBounds(my_polygon.getBounds()); 

Если вы используете Data layer для отображения многоугольников, проверить this SO answer. В нем приводится пример того, как вычислять границы Data.Feature, если это многоугольник.

Если у вас есть какие-то другие способы определения границ полигона, а затем просто использовать это:

map.fitBounds(new google.maps.LatLngBounds(new google.maps.LatLng(SouthWestCornerLat, SouthWestCornerLng), new google.maps.LatLng(NorthEastCornerLat, NorthEastCornerLng)); 
+0

Perfect. Спасибо вам ! –