---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/collection.Item.md
---
# collection.Item

Расширяет [IChildOnMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IChildOnMap.md), [ICustomizable](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ICustomizable.md), [IEventEmitter](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IEventEmitter.md), [IParentOnMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IParentOnMap.md).

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

## Конструктор {#constructor}

```javascript
collection.Item([options])
```

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `options` | — | Тип: Object

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

**Пример:**

```javascript
// Пример реализации собственного элемента управления на основе наследования от 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});
```
## Поля {#fields}

#|
|| **Имя** | **Тип** | **Описание** ||
|| [events](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IEventEmitter.md#events) | [IEventManager](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IEventManager.md) | Менеджер событий.

Унаследовано от [IEventEmitter](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IEventEmitter.md#events). ||
|| [options](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ICustomizable.md#options) | [IOptionManager](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IOptionManager.md) | Менеджер опций.

Унаследовано от [ICustomizable](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ICustomizable.md#options). ||
|#

## События {#events}

#|
|| **Имя** | **Описание** ||
|| [mapchange](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IParentOnMap.md#event-mapchange) | Сменилась карта. Поля данных: 
• oldMap - старая карта;

• newMap - новая карта.

Унаследовано от [IParentOnMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IParentOnMap.md#event-mapchange). ||
|| [optionschange](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ICustomizable.md#event-optionschange) | Изменение в опциях объекта.

Унаследовано от [ICustomizable](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ICustomizable.md#event-optionschange). ||
|| [parentchange](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IChild.md#event-parentchange) | Сменился родительский объект.

Поля данных:

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

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

Унаследовано от [IChild](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IChild.md#event-parentchange). ||
|#

## Методы {#method}

#|
|| **Имя** | **Возвращает** | **Описание** ||
|| [getMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/collection.Item.md#getMap)() | [Map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map.md) | Returns карту, которой принадлежит элемент коллекции. ||
|| [getParent](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/collection.Item.md#getParent)() | [IParentOnMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IParentOnMap.md) | Returns родительский объект. ||
|| [onAddToMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/collection.Item.md#onAddToMap)([map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/collection.Item.md#onAddToMap-param-map)) |  | Функция, которая вызывается при добавлении элемента на карту. Для выполнения дополнительных действий при добавлении объекта на карту переопределите эту функцию. ||
|| [onRemoveFromMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/collection.Item.md#onRemoveFromMap)() |  | Функция, которая вызывается при удалении элемента с карты. Для выполнения дополнительных действий при удалении объекта с карты переопределите эту функцию. ||
|| [setParent](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/collection.Item.md#setParent)([parent](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/collection.Item.md#setParent-param-parent)) | [collection.Item](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/collection.Item.md) | Устанавливает родителя для заданного элемента коллекции. ||
|#

## Описание методов {#description-methods}

### getMap

```javascript
{Map} getMap()
```

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

### getParent

```javascript
{IParentOnMap} getParent()
```

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

### onAddToMap

```javascript
{} onAddToMap(map)
```

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

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `map`[*](*parametr)  | — | Тип: [Map](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map.md)

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

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

### onRemoveFromMap

```javascript
{} onRemoveFromMap()
```

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

### setParent

```javascript
{collection.Item} setParent(parent)
```

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

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

**Параметры:**

#|
|| **Параметр** | **Значение по умолчанию** | **Описание** ||
|| `parent`[*](*parametr)  | — | Тип: [IParentOnMap](https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/IParentOnMap.md)

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

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

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