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 | Сменилась карта.
Поля данных:
Унаследовано от IParentOnMap. |
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
parentchange | Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
Имя | Описание |
---|---|
mapchange | Сменилась карта.
Поля данных:
Унаследовано от IParentOnMap. |
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
parentchange | Сменился родительский объект. Поля данных:
Унаследовано от IChild. |
Методы
Имя | Возвращает | Описание |
---|---|---|
getMap() | Returns карту, которой принадлежит элемент коллекции. | |
getParent() | Returns родительский объект. | |
onAddToMap(map) | Функция, которая вызывается при добавлении элемента на карту. Для выполнения дополнительных действий при добавлении объекта на карту переопределите эту функцию. | |
onRemoveFromMap() | Функция, которая вызывается при удалении элемента с карты. Для выполнения дополнительных действий при удалении объекта с карты переопределите эту функцию. | |
setParent(parent) | Устанавливает родителя для заданного элемента коллекции. |
Имя | Возвращает | Описание |
---|---|---|
getMap() | Returns карту, которой принадлежит элемент коллекции. | |
getParent() | Returns родительский объект. | |
onAddToMap(map) | Функция, которая вызывается при добавлении элемента на карту. Для выполнения дополнительных действий при добавлении объекта на карту переопределите эту функцию. | |
onRemoveFromMap() | Функция, которая вызывается при удалении элемента с карты. Для выполнения дополнительных действий при удалении объекта с карты переопределите эту функцию. | |
setParent(parent) | Устанавливает родителя для заданного элемента коллекции. |
Описание методов
getMap
{Map} getMap()
Returns карту, которой принадлежит элемент коллекции.
getParent
{IParentOnMap} getParent()
Returns родительский объект.
onAddToMap
{} onAddToMap(map)
Функция, которая вызывается при добавлении элемента на карту. Для выполнения дополнительных действий при добавлении объекта на карту переопределите эту функцию.
Параметры:
* Обязательный параметр/опция.
onRemoveFromMap
{} onRemoveFromMap()
Функция, которая вызывается при удалении элемента с карты. Для выполнения дополнительных действий при удалении объекта с карты переопределите эту функцию.
setParent
{collection.Item} setParent(parent)
Устанавливает родителя для заданного элемента коллекции.
Returns ссылку на себя.
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
parent * | — | Тип: IParentOnMap Родительский объект. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
parent * | — | Тип: IParentOnMap Родительский объект. |
* Обязательный параметр/опция.