GeoObjectCollection
Расширяет IGeoObject, IMapObjectCollection.
Коллекция геообъектов на базе двусвязного списка. Обеспечивает быстрое добавление и удаление объектов, но не поддерживает работу с порядковыми индексами. Смотрите также GeoObjectArray.
Конструктор
GeoObjectCollection([feature[, options]])
Создает коллекцию геообъектов.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Object Описание группы. Функционально соответствует описанию геообъекта. Смотрите GeoObject. |
|
— |
Тип: IGeometry|Object Геометрия коллекции. |
|
— |
Тип: IDataManager|Object Данные коллекции. |
|
— |
Тип: 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());
Поля
Имя |
Тип |
Описание |
Менеджер событий. Унаследовано от IDomEventEmitter. |
||
Геометрия геообъекта. Унаследовано от IGeoObject. |
||
Менеджер опций. Унаследовано от ICustomizable. |
||
Менеджер данных геообъекта. Унаследовано от IGeoObject. |
||
Состояние геообъекта. Определяется следующими полями: • hover - признак того, что в данный момент на геообъект наведен указатель мыши. • drag - признак того, что геообъект перетаскивается. Унаследовано от IGeoObject. |
События
Имя |
Описание |
Произошло добавление дочернего объекта. Унаследовано от ICollection. |
|
Изменение координат географической области, охватывающей группу и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get: • oldBounds - предыдущая ограничивающая область; • newBounds - новая ограничивающая область. |
|
Однократное нажатие левой кнопки мыши на объекте. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Вызов контекстного меню на элементе. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Двойное нажатие левой кнопки мыши на объекте. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Изменение геометрии геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get: • originalEvent - оригинальное событие геометрии. Унаследовано от IGeoObject. |
|
Сменилась карта. Поля данных: • newMap - новая карта. Унаследовано от IParentOnMap. |
|
Нажатие кнопки мыши над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Наведение курсора на объект. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Вывод курсора за пределы объекта. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Перемещение курсора над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Отпускание кнопки мыши над объектом. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager. Унаследовано от IDomEventEmitter. |
|
Окончание мультисенсорного управления. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях. Унаследовано от IDomEventEmitter. |
|
Повторящееся событие при мультисенсорном управлении. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях. Унаследовано от IDomEventEmitter. |
|
Начало мультисенсорного управления. Данное событие доступно только на устройствах, которые поддерживают множественные сенсорные прикосновения. Возвращает реализацию интерфейса IMultiTouchEvent c информацией о прикосновениях. Унаследовано от IDomEventEmitter. |
|
Изменение в опциях объекта. Унаследовано от ICustomizable. |
|
Изменение оверлея геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get: • newOverlay - новый оверлей, либо null, если оверлея нет; • oldOverlay - старый оверлей, либо null, если оверлея нет. Унаследовано от IGeoObject. |
|
Сменился родительский объект. Поля данных: • oldParent - старый родитель; • newParent - новый родитель. Унаследовано от IChild. |
|
Изменение пиксельных координат области, охватывающей группу и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get: • oldPixelBounds - предыдущая ограничивающая область; • newPixelBounds - новая ограничивающая область. |
|
Изменение пиксельной геометрии геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get: • newPixelGeometry - новая пиксельная геометрия; • oldPixelGeometry - старая пиксельная геометрия. Унаследовано от IGeoObject. |
|
Изменение данных геообъекта. Экземпляр класса Event. Имена полей, доступных через метод Event.get: • originalEvent - оригинальное событие менеджера данных. Унаследовано от IGeoObject. |
|
Произошло удаление дочернего объекта. Унаследовано от ICollection. |
|
Скролл мышкой. При использовании следует иметь в виду, что при сенсорном вводе события мыши будут эмулироваться. Более детально описание в domEvent.manager. Унаследовано от IDomEventEmitter. |
Методы
Имя |
Возвращает |
Описание |
Добавляет геообъект в коллекцию. |
||
Перебирает все элементы коллекции, вызывая для каждого функцию-обработчик. |
||
Number[][]|null |
Returns географические координаты области, охватывающей коллекцию и все ее дочерние геообъекты. |
|
Returns итератор по коллекции. |
||
Integer |
Returns количество геообъектов в коллекции. |
|
getMap() |
Returns ссылку на карту. Унаследован от IParentOnMap. |
|
IOverlay|null |
Returns оверлей геообъекта, либо null. Унаследован от IGeoObject. |
|
Returns ссылку на родительский объект. Унаследован от IChildOnMap. |
||
Number[][]|null |
Returns глобальные пиксельные координаты области, охватывающей коллекцию и все ее дочерние геообъекты. |
|
Удаляет геообъект из коллекции. |
||
Удаляет из коллекции все геообъекты. |
||
Устанавливает родительский объект. Унаследован от IChildOnMap. |
Описание событий
boundschange
Изменение координат географической области, охватывающей коллекцию и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
• oldBounds - предыдущая ограничивающая область;
• newBounds - новая ограничивающая область.
pixelboundschange
Изменение пиксельных координат области, охватывающей коллекцию и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
• oldPixelBounds - предыдущая ограничивающая область;
• newPixelBounds - новая ограничивающая область.
Описание методов
add
{GeoObjectCollection} add(child)
Добавляет геообъект в коллекцию.
Returns ссылку на коллекцию.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: IGeoObject Дочерний геообъект. |
* Обязательный параметр/опция.
each
{} each(callback[, context])
Перебирает все элементы коллекции, вызывая для каждого функцию-обработчик.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Function Функция-обработчик. |
|
— |
Тип: 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
{GeoObjectCollection} remove(child)
Удаляет геообъект из коллекции.
Returns ссылку на коллекцию.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: IGeoObject Дочерний геообъект. |
* Обязательный параметр/опция.
removeAll
{GeoObjectCollection} removeAll()
Удаляет из коллекции все геообъекты.
Returns ссылку на коллекцию.
Обязательный параметр/опция.