GeoObjectCollection

Расширяет IGeoObject, IMapObjectCollection.

Коллекция геообъектов на базе двусвязного списка. Обеспечивает быстрое добавление и удаление объектов, но не поддерживает работу с порядковыми индексами. Смотрите также GeoObjectArray.

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

Конструктор

GeoObjectCollection([feature[, options]])

Создает коллекцию геообъектов.

Параметры:

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

Тип: Object

Описание коллекции. Функционально соответствует описанию геообъекта. Смотрите GeoObject.

feature.geometry

Тип: IGeometry|Object

Геометрия коллекции.

feature.properties

Тип: IDataManager|Object

Данные коллекции.

options

Тип: Object

Опции коллекции. Здесь можно задавать все опции описанные в классе GeoObject. Значения опций будут применяться как к самой коллекции, так и к ее дочерним объектам, если для них данные опции не заданы.

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

Тип: Object

Описание коллекции. Функционально соответствует описанию геообъекта. Смотрите GeoObject.

feature.geometry

Тип: IGeometry|Object

Геометрия коллекции.

feature.properties

Тип: IDataManager|Object

Данные коллекции.

options

Тип: Object

Опции коллекции. Здесь можно задавать все опции описанные в классе GeoObject. Значения опций будут применяться как к самой коллекции, так и к ее дочерним объектам, если для них данные опции не заданы.

Пример:

// Создаем коллекцию геообъектов.
var myCollection = new ymaps.GeoObjectCollection();

// Добавляем метки в коллекцию.
myCollection.add(new ymaps.Placemark([37.61, 55.75]));
myCollection.add(new ymaps.Placemark([13.38, 52.51]));
myCollection.add(new ymaps.Placemark([30.30, 50.27]));

// При наведении на одну из меток подсвечиваем коллекцию целиком.
myCollection.events
    .add("mouseenter", function () {
        myCollection.options.set("preset", "twirl#redIcon");
    })
    .add("mouseleave", function () {
        myCollection.options.unset("preset");
    });

// Добавляем коллекцию на карту.
myMap.geoObjects.add(myCollection);
// Устанавливаем карте центр и масштаб так, чтобы охватить коллекцию целиком.
myMap.setBounds(myCollection.getBounds());

Поля

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

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

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

geometry IGeometry

Геометрия геообъекта.

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

options IOptionManager

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

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

properties IDataManager

Менеджер данных геообъекта.

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

state IDataManager
Состояние геообъекта. Определяется следующими полями:
  • active - признак того, что на геообъекте открыт балун.
  • hover - признак того, что в данный момент на геообъект наведен указатель мыши.
  • drag - признак того, что геообъект перетаскивается.

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

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

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

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

geometry IGeometry

Геометрия геообъекта.

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

options IOptionManager

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

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

properties IDataManager

Менеджер данных геообъекта.

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

state IDataManager
Состояние геообъекта. Определяется следующими полями:
  • active - признак того, что на геообъекте открыт балун.
  • hover - признак того, что в данный момент на геообъект наведен указатель мыши.
  • drag - признак того, что геообъект перетаскивается.

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

События

Имя Описание
add

Произошло добавление дочернего объекта.

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

boundschange
Изменение координат географической области, охватывающей коллекцию и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • oldBounds - предыдущая ограничивающая область;
  • newBounds - новая ограничивающая область.
click

Однократное нажатие левой кнопки мыши на объекте. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

contextmenu

Вызов контекстного меню на элементе. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

dblclick

Двойное нажатие левой кнопки мыши на объекте. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

geometrychange
Изменение геометрии геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • originalEvent - оригинальное событие геометрии.

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

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

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

mousedown

Нажатие кнопки мыши над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

mouseenter

Наведение курсора на объект. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

mouseleave

Вывод курсора за пределы объекта. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

mousemove

Перемещение курсора над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

mouseup

Отпускание кнопки мыши над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

multitouchend

Окончание мультисенсорного управления. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях.

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

multitouchmove

Повторящееся событие при мультисенсорном управлении. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях.

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

multitouchstart

Начало мультисенсорного управления. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях.

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

optionschange

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

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

overlaychange
Изменение оверлея геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • newOverlay - новый оверлей, либо null, если оверлея нет;
  • oldOverlay - старый оверлей, либо null, если оверлея нет.

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

parentchange

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

Поля данных:

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

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

pixelboundschange
Изменение пиксельных координат области, охватывающей коллекцию и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • oldPixelBounds - предыдущая ограничивающая область;
  • newPixelBounds - новая ограничивающая область.
pixelgeometrychange
Изменение пиксельной геометрии геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • newPixelGeometry - новая пиксельная геометрия;
  • oldPixelGeometry - старая пиксельная геометрия.

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

propertieschange
Изменение данных геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • originalEvent - оригинальное событие менеджера данных.

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

remove

Произошло удаление дочернего объекта.

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

wheel

Скролл мышкой. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

Имя Описание
add

Произошло добавление дочернего объекта.

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

boundschange
Изменение координат географической области, охватывающей коллекцию и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • oldBounds - предыдущая ограничивающая область;
  • newBounds - новая ограничивающая область.
click

Однократное нажатие левой кнопки мыши на объекте. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

contextmenu

Вызов контекстного меню на элементе. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

dblclick

Двойное нажатие левой кнопки мыши на объекте. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

geometrychange
Изменение геометрии геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • originalEvent - оригинальное событие геометрии.

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

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

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

mousedown

Нажатие кнопки мыши над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

mouseenter

Наведение курсора на объект. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

mouseleave

Вывод курсора за пределы объекта. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

mousemove

Перемещение курсора над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

mouseup

Отпускание кнопки мыши над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

multitouchend

Окончание мультисенсорного управления. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях.

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

multitouchmove

Повторящееся событие при мультисенсорном управлении. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях.

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

multitouchstart

Начало мультисенсорного управления. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях.

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

optionschange

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

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

overlaychange
Изменение оверлея геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • newOverlay - новый оверлей, либо null, если оверлея нет;
  • oldOverlay - старый оверлей, либо null, если оверлея нет.

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

parentchange

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

Поля данных:

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

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

pixelboundschange
Изменение пиксельных координат области, охватывающей коллекцию и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • oldPixelBounds - предыдущая ограничивающая область;
  • newPixelBounds - новая ограничивающая область.
pixelgeometrychange
Изменение пиксельной геометрии геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • newPixelGeometry - новая пиксельная геометрия;
  • oldPixelGeometry - старая пиксельная геометрия.

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

propertieschange
Изменение данных геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • originalEvent - оригинальное событие менеджера данных.

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

remove

Произошло удаление дочернего объекта.

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

wheel

Скролл мышкой. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager.

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

Методы

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

GeoObjectCollection

Добавляет геообъект в коллекцию.

each(callback[, context])

Перебирает все элементы коллекции, вызывая для каждого функцию-обработчик.

getBounds()

Number[][]|null

Returns географические координаты области, охватывающей коллекцию и все ее дочерние геообъекты.

getIterator()

IIterator

Returns итератор по коллекции.

getLength()

Integer

Returns количество геообъектов в коллекции.

getMap()

Map

Returns ссылку на карту.

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

getOverlay()

IOverlay|null

Returns оверлей геообъекта, либо null.

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

getParent()

IParentOnMap

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

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

getPixelBounds()

Number[][]|null

Returns глобальные пиксельные координаты области, охватывающей коллекцию и все ее дочерние геообъекты.

remove(child)

GeoObjectCollection

Удаляет геообъект из коллекции.

removeAll()

GeoObjectCollection

Удаляет из коллекции все геообъекты.

setParent(parent)

IChildOnMap

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

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

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

GeoObjectCollection

Добавляет геообъект в коллекцию.

each(callback[, context])

Перебирает все элементы коллекции, вызывая для каждого функцию-обработчик.

getBounds()

Number[][]|null

Returns географические координаты области, охватывающей коллекцию и все ее дочерние геообъекты.

getIterator()

IIterator

Returns итератор по коллекции.

getLength()

Integer

Returns количество геообъектов в коллекции.

getMap()

Map

Returns ссылку на карту.

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

getOverlay()

IOverlay|null

Returns оверлей геообъекта, либо null.

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

getParent()

IParentOnMap

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

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

getPixelBounds()

Number[][]|null

Returns глобальные пиксельные координаты области, охватывающей коллекцию и все ее дочерние геообъекты.

remove(child)

GeoObjectCollection

Удаляет геообъект из коллекции.

removeAll()

GeoObjectCollection

Удаляет из коллекции все геообъекты.

setParent(parent)

IChildOnMap

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

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

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

boundschange

Изменение координат географической области, охватывающей коллекцию и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • oldBounds - предыдущая ограничивающая область;
  • newBounds - новая ограничивающая область.

pixelboundschange

Изменение пиксельных координат области, охватывающей коллекцию и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • oldPixelBounds - предыдущая ограничивающая область;
  • newPixelBounds - новая ограничивающая область.

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

add

Добавляет геообъект в коллекцию.

Returns ссылку на коллекцию.

Параметры:

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

Тип: IGeoObject

Дочерний геообъект.

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

Тип: IGeoObject

Дочерний геообъект.

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

each

{} each(callback[, context])

Перебирает все элементы коллекции, вызывая для каждого функцию-обработчик.

Параметры:

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

Тип: Function

Функция-обработчик.

context

Тип: Object

Контекст выполнения функции.

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

Тип: Function

Функция-обработчик.

context

Тип: Object

Контекст выполнения функции.

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

getBounds

{Number[][]|null} getBounds()

Returns географические координаты области, охватывающей коллекцию и все ее дочерние геообъекты.

Пример:

// Устанавливаем центр и масштаб карты так, чтобы отобразить всю коллекцию целиком.
myMap.setBounds(myCollection.getBounds());

getIterator

{IIterator} getIterator()

Returns итератор по коллекции.

Пример:

// Ищем в коллекции геообъект с геометрией "Ломаная линия".
var iterator = myGroup.getIterator(),
    object;
while (object = iterator.getNext()) {
    if (object.geometry.getType() == "LineString") {
        break;
    }
}

getLength

{Integer} getLength()

Returns количество геообъектов в коллекции.

getPixelBounds

{Number[][]|null} getPixelBounds()

Returns глобальные пиксельные координаты области, охватывающей коллекцию и все ее дочерние геообъекты.

remove

Удаляет геообъект из коллекции.

Returns ссылку на коллекцию.

Параметры:

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

Тип: IGeoObject

Дочерний геообъект.

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

Тип: IGeoObject

Дочерний геообъект.

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

removeAll

{GeoObjectCollection} removeAll()

Удаляет из коллекции все геообъекты.

Returns ссылку на коллекцию.