Версия:
Популярные примеры
Карта
Геообъекты
Балун и хинт
Элементы управления
Активные области
Кластеризация
GeoQuery
Поведения и события
Поиск по карте
Пробки
Местоположение пользователя
Маршрутизация
YMapsML
GeoXML
ObjectManager
Модульная система
Панорамы
Внешние модули

Открытие балуна кластера с выбранным объектом

Сохранить как файлыЭкспорт на JSFiddle

Для объединения близко расположенных меток в группу (кластер) используется кластеризатор.

Кластеризатор реализуется классом Clusterer. В качестве параметров конструктору можно передать опции кластеризатора: стиль отображения значка кластера, размер его ячейки и т. д. Список доступных опций можно посмотреть в соответствующем разделе справочника.

Для добавления геообъектов в кластеризатор используется метод add. В качестве параметра может быть передан как отдельный геообъект, так и массив геообъектов.

Часто возникает задача показать информацию об объекте в составе кластера. В таких случаях можно открыть балун кластера с нужной выбранной меткой.

\n\n","clusterer_balloon_open.js":"ymaps.ready(function () {\n var myMap = new ymaps.Map('map', {\n center: [55.751574, 37.573856],\n zoom: 9\n }, {\n searchControlProvider: 'yandex#search'\n }),\n clusterer = new ymaps.Clusterer(),\n getPointData = function (index) {\n return {\n balloonContentBody: 'балун метки ' + index + '',\n clusterCaption: 'метка ' + index + ''\n };\n },\n points = [\n [55.831903,37.411961], [55.763338,37.565466], [55.763338,37.565466], [55.744522,37.616378], [55.780898,37.642889], [55.793559,37.435983], [55.800584,37.675638], [55.716733,37.589988], [55.775724,37.560840], [55.822144,37.433781], [55.874170,37.669838], [55.716770,37.482338], [55.780850,37.750210], [55.810906,37.654142], [55.865386,37.713329], [55.847121,37.525797], [55.778655,37.710743], [55.623415,37.717934], [55.863193,37.737000], [55.866770,37.760113], [55.698261,37.730838], [55.633800,37.564769], [55.639996,37.539400], [55.690230,37.405853], [55.775970,37.512900], [55.775777,37.442180], [55.811814,37.440448], [55.751841,37.404853], [55.627303,37.728976], [55.816515,37.597163], [55.664352,37.689397], [55.679195,37.600961], [55.673873,37.658425], [55.681006,37.605126], [55.876327,37.431744], [55.843363,37.778445], [55.875445,37.549348], [55.662903,37.702087], [55.746099,37.434113], [55.838660,37.712326], [55.774838,37.415725], [55.871539,37.630223], [55.657037,37.571271], [55.691046,37.711026], [55.803972,37.659610], [55.616448,37.452759], [55.781329,37.442781], [55.844708,37.748870], [55.723123,37.406067], [55.858585,37.484980]\n ],\n geoObjects = [];\n\n for (var i = 0, len = points.length; i < len; i++) {\n geoObjects[i] = new ymaps.Placemark(points[i], getPointData(i));\n }\n\n clusterer.add(geoObjects);\n myMap.geoObjects.add(clusterer);\n\n // Откроем балун на третьей метке в массиве.\n var objectState = clusterer.getObjectState(geoObjects[2]);\n if (objectState.isClustered) {\n // Если метка находится в кластере, выставим ее в качестве активного объекта.\n // Тогда она будет \"выбрана\" в открытом балуне кластера.\n objectState.cluster.state.set('activeObject', geoObjects[2]);\n clusterer.balloon.open(objectState.cluster);\n } else if (objectState.isShown) {\n // Если метка не попала в кластер и видна на карте, откроем ее балун.\n geoObjects[2].balloon.open();\n }\n});"},"resources":[],"directory":"https://sandbox.api.maps.yandex.net/examples/ru/2.1/clusterer_balloon_open/"}
Пишете на JavaScript? У нас есть вакансии
Sun Sep 18 2022 20:10:14 GMT+0300 (Moscow Standard Time)