GeoObjectArray

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

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

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

Конструктор

GeoObjectArray([feature[, options]])

Создает упорядоченную группу геообъектов.

Параметры:

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

Тип: Object

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

feature.geometry

Тип: IGeometry|Object

Геометрия группы.

feature.properties

Тип: IDataManager|Object

Данные группы.

options

Тип: Object

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

Пример:

// Создаем группу геообъектов и задаем опции.
var myGroup = new ymaps.GeoObjectArray({}, {
    preset: "twirl#airplaneIcon",
    strokeWidth: 4,
    geodesic: true
});

// Добавляем в группу метки и линию.
myGroup.add(new ymaps.Placemark([13.38, 52.51]));
myGroup.add(new ymaps.Placemark([30.30, 50.27]));
myGroup.add(new ymaps.Polyline([[13.38, 52.51], [30.30, 50.27]]));

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

Поля

Имя Тип Описание
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(child[, index])

GeoObjectArray

Добавляет геообъект в группу.

each(callback[, context])

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

get(index)

IGeoObject|null

Returns ссылку на дочерний геообъект, либо null, если объекта с заданным индексом нет в группе.

getBounds()

Number[][]|null

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

getIterator()

IIterator

Returns итератор по группе.

getLength()

GeoObjectArray

Returns количество геообъектов в группе.

getMap()

Map

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

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

getOverlay()

IOverlay|null

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

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

getParent()

IParentOnMap

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

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

getPixelBounds()

Number[][]|null

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

indexOf(object)

Integer

Returns индекс геообъекта в группе или -1, если объект не найден.

remove(child)

GeoObjectArray

Удаляет геообъект из группы.

removeAll()

GeoObjectArray

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

setParent(parent)

IChildOnMap

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

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

splice(index, number)

IGeoObject[]

Удаляет геообъекты из группы. Если необходимо, вставляет на их место другие. Объекты, которые будут вставлены вместо удаляемых, передаются как дополнительные параметры (после параметра number).

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

boundschange

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

pixelboundschange

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

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

add

Добавляет геообъект в группу.

Returns ссылку на группу.

Параметры:

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

Тип: IGeoObject

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

index

Тип: Integer

Индекс, в который добавляется новый объект. Если индекс не задан, то объект будет добавлен в конец группы.

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

each

{} each(callback[, context])

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

Параметры:

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

Тип: Function

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

context

Тип: Object

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

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

Пример:

// Отображаем индекс геообъекта в группе как содержимое его иконки.
myGroup.events.add(["add", "remove"], function () {
    this.each(function (el, i) {
        el.properties.set("iconContent", i);
    })
}, myGroup);

get

{IGeoObject|null} get(index)

Returns ссылку на дочерний геообъект, либо null, если объекта с заданным индексом нет в группе.

Параметры:

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

Тип: Integer

Индекс дочернего геообъекта.

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

getBounds

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

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

getIterator

{IIterator} getIterator()

Returns итератор по группе.

getLength

{GeoObjectArray} getLength()

Returns количество геообъектов в группе.

getPixelBounds

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

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

indexOf

{Integer} indexOf(object)

Returns индекс геообъекта в группе или -1, если объект не найден.

Параметры:

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

Тип: Object

Геообъект.

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

remove

Удаляет геообъект из группы.

Returns ссылку на группу.

Параметры:

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

Тип: IGeoObject

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

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

Пример:

// При клике по геообъекту удаляем его из группы.
myGroup.events.add("click", function (e) {
    if (e.get("target").getParent() == this) {
        this.remove(e.get("target"));
    }
}, myGroup);

removeAll

{GeoObjectArray} removeAll()

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

Returns ссылку на группу.

splice

{IGeoObject[]} splice(index, number)

Удаляет геообъекты из группы. Если необходимо, вставляет на их место другие. Объекты, которые будут вставлены вместо удаляемых, передаются как дополнительные параметры (после параметра number).

Returns массив удаленных геообъектов.

Параметры:

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

Тип: Integer

Индекс геообъекта, с которого начинается удаление.

number *

Тип: Integer

Количество удаляемых геообъектов.

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

Пример:

// Удаляет второй объект.
myGroup.splice(1, 1);
// Вставляет новый объект obj во вторую позицию.
myGroup.splice(1, 0, obj);
// Заменяет второй объект на новый объект obj.
myGroup.splice(1, 1, obj);