collection.Item

Расширяет IChildOnMap, ICustomizable, IEventEmitter, IParentOnMap.

Базовый класс элемента коллекции объектов карты.

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

Конструктор

collection.Item([options])

Параметры:

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

Тип: Object

Опции обьекта.

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

Тип: Object

Опции обьекта.

Пример:

// Пример реализации собственного элемента управления на основе наследования от collection.Item.
// Элемент управления отображает название объекта, который находится в центре карты.
var bind = ymaps.util.bind,
    map = new ymaps.Map(
        'map', {
            center: [55.819543, 37.611619],
            zoom: 6
        }
    ),
// Создаем собственный класс.
    CustomControlClass = function(options) {
        CustomControlClass.superclass.constructor.call(this, options);
        this._$content = null;
        this._geocoderPromise = null;
    };
// И наследуем его от collection.Item.
ymaps.util.augment(CustomControlClass, ymaps.collection.Item, {
    onAddToMap: function (map) {
        CustomControlClass.superclass.onAddToMap.call(this, map);
        // Создаем HTML-элемент с текстом.
        var parentDomContainer = this.getParent().getChildElement(this);
        this._$content = $('<div class="customControl"></div>').appendTo(parentDomContainer);
        this._mapEventGroup = this.getMap().events.group();
        // Запрашиваем данные после изменения положения карты.
        this._mapEventGroup.add('boundschange', this._createRequest, this);
        // Сразу же запращиваем название места.
        this._createRequest();
    },

    onRemoveFromMap: function () {
        this._$content.remove();
        this._mapEventGroup.removeAll();
        this._stopPendingRequest();
        CustomControlClass.superclass.onRemoveFromMap.call(this);
    },

    _createRequest: function() {
        // Отменяем ожидание предыдущих данных.
        this._stopPendingRequest();
        // Запращиваем информацию о месте по координатам центра карты.
        this._geocoderPromise = ymaps.geocode(this.getMap().getCenter().join(','), {
            // Указываем, что ответ должен быть в формате JSON.
            json: true,
            // Устанавливаем лимит на кол-во записей в ответе.
            results: 1
        }).then(
            bind(this._onServerResponse, this)
        );
    },

    _stopPendingRequest: function () {
        if (this._geocoderPromise) {
            this._geocoderPromise.reject();
            this._geocoderPromise = null;
        }
    },

    _onServerResponse: function(result) {
        // Данные от сервера были получены и теперь их необходимо отобразить.
        // Описание ответа в формате JSON.
        var members = result.GeoObjectCollection.featureMember,
            geoObjectData = (members && members.length) ? members[0].GeoObject : null;
        if (geoObjectData) {
            this._$content.text(geoObjectData.metaDataProperty.GeocoderMetaData.text);
        }
    }
});

var customControl = new CustomControlClass();
map.controls.add(customControl, {top: 10, left: 10});

Поля

Имя Тип Описание
events IEventManager

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

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

options IOptionManager

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

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

Имя Тип Описание
events IEventManager

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

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

options IOptionManager

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

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

События

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

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

optionschange

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

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

parentchange

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

Поля данных:

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

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

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

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

optionschange

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

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

parentchange

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

Поля данных:

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

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

Методы

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

Map

Returns карту, которой принадлежит элемент коллекции.

getParent()

IParentOnMap

Returns родительский объект.

onAddToMap(map)

Функция, которая вызывается при добавлении элемента на карту. Для выполнения дополнительных действий при добавлении объекта на карту переопределите эту функцию.

onRemoveFromMap()

Функция, которая вызывается при удалении элемента с карты. Для выполнения дополнительных действий при удалении объекта с карты переопределите эту функцию.

setParent(parent)

collection.Item

Устанавливает родителя для заданного элемента коллекции.

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

Map

Returns карту, которой принадлежит элемент коллекции.

getParent()

IParentOnMap

Returns родительский объект.

onAddToMap(map)

Функция, которая вызывается при добавлении элемента на карту. Для выполнения дополнительных действий при добавлении объекта на карту переопределите эту функцию.

onRemoveFromMap()

Функция, которая вызывается при удалении элемента с карты. Для выполнения дополнительных действий при удалении объекта с карты переопределите эту функцию.

setParent(parent)

collection.Item

Устанавливает родителя для заданного элемента коллекции.

Описание методов

getMap

{Map} getMap()

Returns карту, которой принадлежит элемент коллекции.

getParent

{IParentOnMap} getParent()

Returns родительский объект.

onAddToMap

{} onAddToMap(map)

Функция, которая вызывается при добавлении элемента на карту. Для выполнения дополнительных действий при добавлении объекта на карту переопределите эту функцию.

Параметры:

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

Тип: Map

Объект карты, на которую добавлен элемент.

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

Тип: Map

Объект карты, на которую добавлен элемент.

* Обязательный параметр/опция.

onRemoveFromMap

{} onRemoveFromMap()

Функция, которая вызывается при удалении элемента с карты. Для выполнения дополнительных действий при удалении объекта с карты переопределите эту функцию.

setParent

{collection.Item} setParent(parent)

Устанавливает родителя для заданного элемента коллекции.

Returns ссылку на себя.

Параметры:

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

Тип: IParentOnMap

Родительский объект.

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

Тип: IParentOnMap

Родительский объект.

* Обязательный параметр/опция.