Closed goooseman closed 8 years ago
Кроме того, это вызовет ненужное моргание карты. Попробуйте по-другому:
setBounds
установить maxZoom
равный текущему: https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Map-docpage/#param-options.maxZoomthen
вернуть прежнее значение maxZoom
Добавил новый коммит в эту ветку. Действительно, через .set('maxZoom') работает. Вот только в Яндекс.Картах есть один маленький баг (или фича?): интерфейс не перерисовывается после установления нового maxZoom. Предпложим maxZoom был 23, мы его установили на 10, изменили границы. Кнопка плюс становится disabled, ведь мы уже на текущем максимальном zoom. Затем мы устанавливаем zoom обратно на 23, но кнопка все также остается disabled, пока мы не совершим любое действие над картой. Поэтому я еще делаю map.setZoom(map.getZoom()), то есть устанавливаю текущий zoom, и кнопка в этот момент снова становится нормальной.
Все отлично, разве что тесты упали. В тестовом коде нет этих опций у карты, нужно их добавить.
Вот здесь находится mock карты. Нужно добавить туда spyObject options
по аналогии с events
, а также научить setBounds
возвращать promise так же, как это делается в panTo
.
По поводу костыля с setZoom
нажаловался разработчикам: http://clubs.ya.ru/mapsapi/replies.xml?item_no=59735
@just-boris Я тогда доделаю тесты.
@just-boris done
Спасибо за фикс!
Zoom of the map won't be larger then initial map zoom when ymapsConfig.fitMarkers = true