Клуб API Карт

Cобытие изменения маштаба карты

Пост в архиве.

Есть ли возможность как-то оловить изменение маштаба карты пользователя.


Или как-то скрывать иконки (placemark) на карте в зависимости от маштаба карты.

12 комментариев
Придумал идею отслеживать запрос тайла в TileSource.getTileUrl, это поможет справиться с проблемой, но хотелось бы более красивое решение.
Leonid Khachaturov
28 января 2016, 08:53
А вы не ищете простых путей :) YMaps.Events.observe(map,map.Events.Update, function () { alert("Изменился центр или зум!"); });
Sergey Konstantinov
28 января 2016, 08:53
> Или как-то скрывать иконки (placemark) на карте в зависимости от маштаба карты. Для этого существует класс YMaps.ObjectManager
При использовании YMaps.ObjectManager возникает очень неприятная проблема: когда уменьшаешь маштаб иконки сначала исчезают, потом снова появляются и потом опять исчезают.
Это логичное поведение меток при использовании YMaps.ObjectManager. Почитай этот раздел документации: http://api.yandex.ru/maps/jsapi/doc/dg/concepts/objects_manager.xml
Вы говорите полнейчую ерунда, никакой логики в мигании нет, а есть какие-то проблемы в ObjectManager со скрыванием иконок при определённом маштабе, причем такая проблема возникает не всегда и у меня возникла при использовании своей карты. При скрытие видимости div с иконками через событие: YMaps.Events.observe(map,map.Events.Update такой проблемы не возникает.
Дайте, пожалуйста, ссылку на страницу.
Вот, специально подготовил тестовую страницу. http://dmitriu.design.ru/maps/ Забыл правда сказать, что это происходит при уменьшении маштаба при включенном свойстве enableScrollZoom(). В самом начале движения все иконки исчезают(видимо при зуме вы их скрываете), а потом после окончания зума снова показываете. И уже после этого срабатывает проверка objectManagerа, и он снова их скрывает.
Этот эффект возникает при масштабирование тайла (на сколько я понимаю). Под масштабированием я понимаю срабатывание метода scale() у YMaps.ITile. Вот пример: http://api.yandex.ru/maps/jsapi/examples/itile.html Обрати внимание как работают карты, например, на beta-maps.yandex.ru при прокрутке колесиком. Тот же самый эффект возникает и у тебя. Все правильно срабатывает имхо. А это так критично?
Дело в том, что при зуме действительно надо скрывать иконки и это в принципе нормально, так как scale() у YMaps.ITile тратит приличное количество времени, чтобы приблизить карту, но тут возникает другая проблема. Нужно, чтобы иконки не появлялись снова после scale() у YMaps.ITile, если objectManager скроет их после scale(), иначе происходит неприятное мигание. Это не критично, так как есть решение.
Мы знаем о существовании данной проблемы. Спасибо за Вашу бдительность. В настоящее время избавиться от подобного мигания нельзя.
Спасибо за ваше API =)