GeoObjectArray
Расширяет IGeoObject, IMapObjectCollection.
Упорядоченная группа геообъектов на базе массива. Обеспечивает быстрые операции на основе порядковых индексов, но поиск объектов в данной группе медленнее чем в коллекции на основе двусвязного списка. Смотрите также GeoObjectCollection.
Конструктор
GeoObjectArray([feature[, options]])
Создает упорядоченную группу геообъектов.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Object Описание группы. Функционально соответствует описанию геообъекта. Смотрите GeoObject. |
|
— |
Тип: IGeometry|Object Геометрия группы. |
|
— |
Тип: IDataManager|Object Данные группы. |
|
— |
Тип: 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());
Поля
Имя |
Тип |
Описание |
Менеджер событий. Унаследовано от 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. |
Методы
Имя |
Возвращает |
Описание |
Добавляет геообъект в группу. |
||
Перебирает все элементы группы, вызывая для каждого функцию-обработчик. |
||
IGeoObject|null |
Returns ссылку на дочерний геообъект, либо null, если объекта с заданным индексом нет в группе. |
|
Number[][]|null |
Returns географические координаты области, охватывающей группу и все ее дочерние геообъекты. |
|
Returns итератор по группе. |
||
Returns количество геообъектов в группе. |
||
getMap() |
Returns ссылку на карту. Унаследован от IParentOnMap. |
|
IOverlay|null |
Returns оверлей геообъекта, либо null. Унаследован от IGeoObject. |
|
Returns ссылку на родительский объект. Унаследован от IChildOnMap. |
||
Number[][]|null |
Returns глобальные пиксельные координаты области, охватывающей группу и все ее дочерние геообъекты. |
|
Integer |
Returns индекс геообъекта в группе или -1, если объект не найден. |
|
Удаляет геообъект из группы. |
||
Удаляет из группы все геообъекты. |
||
Устанавливает родительский объект. Унаследован от IChildOnMap. |
||
Удаляет геообъекты из группы. Если необходимо, вставляет на их место другие. Объекты, которые будут вставлены вместо удаляемых, передаются как дополнительные параметры (после параметра number). |
Описание событий
boundschange
Изменение координат географической области, охватывающей группу и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
• oldBounds - предыдущая ограничивающая область;
• newBounds - новая ограничивающая область.
pixelboundschange
Изменение пиксельных координат области, охватывающей группу и все ее дочерние геообъекты. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
• oldPixelBounds - предыдущая ограничивающая область;
• newPixelBounds - новая ограничивающая область.
Описание методов
add
{GeoObjectArray} add(child[, index])
Добавляет геообъект в группу.
Returns ссылку на группу.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: IGeoObject Дочерний геообъект. |
|
— |
Тип: Integer Индекс, в который добавляется новый объект. Если индекс не задан, то объект будет добавлен в конец группы. |
* Обязательный параметр/опция.
each
{} each(callback[, context])
Перебирает все элементы группы, вызывая для каждого функцию-обработчик.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Function Функция-обработчик. |
|
— |
Тип: 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, если объекта с заданным индексом нет в группе.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: 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 Геообъект. |
* Обязательный параметр/опция.
remove
{GeoObjectArray} remove(child)
Удаляет геообъект из группы.
Returns ссылку на группу.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: 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 массив удаленных геообъектов.
Параметры:
Параметр |
Значение по умолчанию |
Описание |
|
— |
Тип: Integer Индекс геообъекта, с которого начинается удаление. |
|
— |
Тип: Integer Количество удаляемых геообъектов. |
* Обязательный параметр/опция.
Пример:
// Удаляет второй объект.
myGroup.splice(1, 1);
// Вставляет новый объект obj во вторую позицию.
myGroup.splice(1, 0, obj);
// Заменяет второй объект на новый объект obj.
myGroup.splice(1, 1, obj);
Обязательный параметр/опция.