Клуб API Карт

Автомасштабирование карты

Михаил
14 декабря 2014, 09:28

Добрый день.

На карту вывожу границу мун района или города. Многоугольником. Указываю центр многоугольника. Вроде все отрабатывает.

Но как сделать автомасштаб карты, например если многоугольник превышает размер окна карты? Если многоугольник больше окна - то масштаб уменьшить, если многоуольник меньше окна,то масштаб увеличить? 

 

Спасибо.

4 комментария
Подписаться на комментарии к посту

Обычно в таких случаях масштабируют не на центр, а выставляют карте область, занимаемую геометрией полигона.

https://tech.yandex.ru/maps/doc/jsapi/2.1-dev/ref/reference/Map-docpage/#setBounds

 

myMap.setBounds(myPolygon.geometry.getBounds(), {

    checkZoomRange: true

    //, zoomMargin: 100 // Можно указать отступ в пикселях

});

Я использую метод panTo.

myMap.panTo(c.center_point, {
flying: true,
checkZoomRange: true,
duration: 1000

}).then(function () {

}, function (err) {

}, this);

Если использовать myMap.setBound, то нет эффекта flying.

И у panTo тоже есть метод checkZoomRange: true.

 

можно использовать метод

 util.bounds.getCenterAndZoom для получения масштаба из области полигона

Спасибо.