control.SmallZoomControl
Расширяет IControl, ICustomizable.
Класс для создания элемента управления "Простой элемент управления масштабом карты". Позволяет уменьшать или увеличивать коэффициент масштабирования карты на 1.
Конструктор
control.SmallZoomControl([options])
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Object Опции элемента управления. |
|
200 |
Тип: Number Время анимации маштабирования карты, мс. |
|
— |
Тип: Function|String Макет элемента управления. В конструктор макета передается объект, содержащий поля:
Макет меняет свой внешний вид на основе данных, состояния и опций элемента управления. Элемент управления, в свою очередь, реагирует на интерфейсные события макета и меняет значения полей control.SmallZoomControl.state в зависимости от полученных команд. (Тип: конструктор объекта с интерфейсом IZoomControlLayout или ключ макета). |
|
{ top: 75, left: 5 } |
Тип: Object Положение элемента управления над картой. Задается в виде объекта со следующими полями:
Если при этом заданы одновременно и top, и bottom, то значение bottom игнорируется. Аналогично, если заданы одновременно и left, и right, то значение right игнорируется. Если элемент управления добавляется в группу элементов (например, в тулбар или раскрывающийся список), то значение position не применяется. |
|
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});
Поля
Имя |
Тип |
Описание |
Данные элемента управления. |
||
Менеджер событий. Унаследовано от IEventEmitter. |
||
Менеджер опций. Унаследовано от ICustomizable. |
||
Состояние элемента управления. Имена полей, доступных через метод data.Manager.get: • zoomRange - текущий диапазон коэффициентов масштабирования. |
События
Имя |
Описание |
Сменилась карта. Поля данных: • newMap - новая карта. Унаследовано от IChildOnMap. |
|
Изменение в опциях объекта. Унаследовано от ICustomizable. |
|
Сменился родительский объект. Поля данных: • oldParent - старый родитель; • newParent - новый родитель. Унаследовано от IChild. |
|
Коэффициент масштабирования карты изменен. Экземпляр класса Event. • newZoom - новый коэффициент масштабирования карты; • oldZoom - старый коэффициент масштабирования карты. |
Методы
Имя |
Возвращает |
Описание |
Returns ссылку на родительский объект. Унаследован от IControl. |
||
Устанавливает родительский объект. Унаследован от IControl. |
Описание полей
data
{data.Manager} data
Данные элемента управления.
state
{data.Manager} state
Состояние элемента управления. Имена полей, доступных через метод data.Manager.get:
• zoom - текущий коэффициент масштабирования;
• zoomRange - текущий диапазон коэффициентов масштабирования.
Описание событий
zoomchange
Коэффициент масштабирования карты изменен. Экземпляр класса Event.
• newZoom - новый коэффициент масштабирования карты;
• oldZoom - старый коэффициент масштабирования карты.