Можно определить уровень масштабирования в зависимости от высоты форм многоугольника (административных границ)? Этот полигон будет полностью отображаться в div.Установить карту google динамически динамически
-1
A
ответ
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));
Perfect. Спасибо вам ! –