just-boris / angular-ymaps

Yandex Maps API as an Angular JS direcitive
http://catatron.com/angular-ymaps/
51 stars 22 forks source link

FIX #12 #13

Closed goooseman closed 8 years ago

goooseman commented 8 years ago

Zoom of the map won't be larger then initial map zoom when ymapsConfig.fitMarkers = true

just-boris commented 8 years ago

Кроме того, это вызовет ненужное моргание карты. Попробуйте по-другому:

goooseman commented 8 years ago

Добавил новый коммит в эту ветку. Действительно, через .set('maxZoom') работает. Вот только в Яндекс.Картах есть один маленький баг (или фича?): интерфейс не перерисовывается после установления нового maxZoom. Предпложим maxZoom был 23, мы его установили на 10, изменили границы. Кнопка плюс становится disabled, ведь мы уже на текущем максимальном zoom. Затем мы устанавливаем zoom обратно на 23, но кнопка все также остается disabled, пока мы не совершим любое действие над картой. Поэтому я еще делаю map.setZoom(map.getZoom()), то есть устанавливаю текущий zoom, и кнопка в этот момент снова становится нормальной.

just-boris commented 8 years ago

Все отлично, разве что тесты упали. В тестовом коде нет этих опций у карты, нужно их добавить. Вот здесь находится mock карты. Нужно добавить туда spyObject options по аналогии с events, а также научить setBounds возвращать promise так же, как это делается в panTo.

По поводу костыля с setZoom нажаловался разработчикам: http://clubs.ya.ru/mapsapi/replies.xml?item_no=59735

goooseman commented 8 years ago

@just-boris Я тогда доделаю тесты.

goooseman commented 8 years ago

@just-boris done

just-boris commented 8 years ago

Спасибо за фикс!