control.SmallZoomControl

Расширяет IControl, ICustomizable.

Класс для создания элемента управления "Простой элемент управления масштабом карты". Позволяет уменьшать или увеличивать коэффициент масштабирования карты на 1.

Конструктор | Поля | События | Методы

Конструктор

control.SmallZoomControl([options])

Параметры:

Параметр Значение по умолчанию Описание
options

Тип: Object

Опции элемента управления.

options.duration 200

Тип: Number

Время анимации маштабирования карты, мс.

options.layout

Тип: Function|String

Макет элемента управления. В конструктор макета передается объект, содержащий поля: <ul> <li>control - ссылка на элемент управления;</li> <li>options - менеджер опций элемента управления control.SmallZoomControl.options;</li> <li>data - менеджер данных элемента управления control.SmallZoomControl.data;</li> <li>state - менеджер состояния элемента управления control.SmallZoomControl.state.</li> </ul> Макет меняет свой внешний вид на основе данных, состояния и опций элемента управления. Элемент управления, в свою очередь, реагирует на интерфейсные события макета и меняет значения полей control.SmallZoomControl.state в зависимости от полученных команд. (Тип: конструктор объекта с интерфейсом IZoomControlLayout или ключ макета).

options.position { top: 75, left: 5 }

Тип: Object

Положение элемента управления над картой. Задается в виде объекта со следующими полями: <ul> <li>top - отступ от верхнего края контейнера карты в пикселах;</li> <li>right - отступ от правого края контейнера карты в пикселах;</li> <li>bottom - отступ от нижнего края контейнера карты в пикселах;</li> <li>left - отступ от левого края контейнера карты в пикселах.</li> </ul> Если при этом заданы одновременно и top, и bottom, то значение bottom игнорируется. Аналогично, если заданы одновременно и left, и right, то значение right игнорируется. Если элемент управления добавляется в группу элементов (например, в тулбар или раскрывающийся список), то значение position не применяется.

options.visible true

Тип: Boolean

Признак того, что элемент управления отображается.

Примеры:

1.

// Пример 1.
// Добавление стандартного элемента управления масштабом.
map.controls.add('smallZoomControl', { top: 70, right: 5 });

2.

// Пример 2.
// Создание пользовательского элемента управления масштабом.
// В примере используется jQuery, загруженный с http://yandex.st/jquery/1.6.4/jquery.min.js
var MyZoomLayout = ymaps.templateLayoutFactory.createClass("<div>" +
        "<div id='zoom-in'>+</div>" +
        "<div id='zoom-out'>-</div>" +
    "</div>", {
    
    build: function () {
        // Сначала вызываем родительский метод.
        MyZoomLayout.superclass.build.call(this);
        // Запомним функции-обработчики, за которым закреплен контекст,
        // чтобы впоследствии от них отписаться.
        this.zoomInCallback = ymaps.util.bind(this.zoomIn, this);
        this.zoomOutCallback = ymaps.util.bind(this.zoomOut, this);
        $('#zoom-in').bind('click', this.zoomInCallback);
        $('#zoom-out').bind('click', this.zoomOutCallback);
    },
                  
   clear: function () {
       // Снимаем слушателей.
       $('#zoom-in').unbind('click', this.zoomInCallback);
       $('#zoom-out').unbind('click', this.zoomOutCallback);
       // А затем вызываем родительский метод.
       MyZoomLayout.superclass.clear.call(this);
   },
                  
   zoomIn: function () {
       var map = this.getData().control.getMap();
       // Посылаем событие, которое описано в интерфейсе IZoomControlLayout.
       this.events.fire('zoomchange', {
           oldZoom: map.getZoom(),
           // При клике на '+' будет послана команда увеличить
           // текущий коэффициент масштабирования на 1
           newZoom: map.getZoom() + 1
       });
   },
                  
   zoomOut: function () {
       var map = this.getData().control.getMap();
       this.events.fire('zoomchange', {
           oldZoom: map.getZoom(),
           // При клике на '-' будет послана команда уменьшить
           // текущий коэффициент масштабирования на 1
           newZoom: map.getZoom() - 1
       });
   }
});
var customZoom = new ymaps.control.SmallZoomControl({layout: MyZoomLayout});

Поля

Имя Тип Описание
data data.Manager

Данные элемента управления.

events IEventManager

Менеджер событий.

Унаследовано от IEventEmitter.

options IOptionManager

Менеджер опций.

Унаследовано от ICustomizable.

state data.Manager
Состояние элемента управления. Имена полей, доступных через метод data.Manager.get:
  • zoom - текущий коэффициент масштабирования;
  • zoomRange - текущий диапазон коэффициентов масштабирования.

События

Имя Описание
mapchange
Сменилась карта. Поля данных:
  • oldMap - старая карта;
  • newMap - новая карта.

Унаследовано от IChildOnMap.

optionschange

Изменение в опциях объекта.

Унаследовано от ICustomizable.

parentchange

Сменился родительский объект.

Поля данных:

  • oldParent - старый родитель;
  • newParent - новый родитель.

Унаследовано от IChild.

zoomchange
Коэффициент масштабирования карты изменен. Экземпляр класса Event.
  • newZoom - новый коэффициент масштабирования карты;
  • oldZoom - старый коэффициент масштабирования карты.

Методы

Имя Возвращает Описание
getParent()

IControlParent

Returns ссылку на родительский объект.

Унаследован от IControl.

setParent(parent)

IChildOnMap

Устанавливает родительский объект.

Унаследован от IControl.

Описание полей

data

Данные элемента управления.

state

{data.Manager} state
Состояние элемента управления. Имена полей, доступных через метод data.Manager.get:
  • zoom - текущий коэффициент масштабирования;
  • zoomRange - текущий диапазон коэффициентов масштабирования.

Описание событий

zoomchange

Коэффициент масштабирования карты изменен. Экземпляр класса Event.
  • newZoom - новый коэффициент масштабирования карты;
  • oldZoom - старый коэффициент масштабирования карты.