Клуб API Карт

Описания активных областей

smog005
27 февраля 2013, 15:53

Здравствуйте. 

Возможно кто-то сталкивался с подобной проблемой:

Как описать активную область таким образом, что бы при клике на метку открывался не балун, а что-то типа кластера ? Смысл в том, что по одному адресу может находиться множество объектов и механизм отображения их в кластерах меня вполне устраивает, но как это сделать через активные области ?

Сейчас есть что-то типа:

 

 

YMaps.Hotspots.Loader.onLoad("myLayer-38285-19145-16",
{
"objects":
[{
"data":
{
"balloonContent": "Первая организация",
},
"base":new YMaps.GeoPoint(30.3102,59.8524),
"geometry":[[-10,-10,10,10]],
},
{
"data":
{
"balloonContent": "Вторая организация",
},
"base":new YMaps.GeoPoint(30.3102,59.8524),
"geometry":[[-10,-10,10,10]],
}],
});

 

 

10 комментариев
Подписаться на комментарии к посту

можно отредактировать свой пост, и выделив весь код, нажать кнопку "врезка"

спасибо. Сделал

не очень понял что значит "открывался кластер"

можно посмотреть документацию на слой активных областей

там есть пример обработки клика на нем

читал вроде уже.

Сейчас при генерации активных областей у меня не учитываются все объекты по определённому адресу, а просто добавляется кусок кода соответствующий описанию объекта. Можно конечно при генерации проверять сразу все объекты по адресу и формировать содержимое балуна для всех сразу, но не очень удобно.

"открывался кластер" имелось ввиду, что сейчас при клике на подобном объекте показывается только одна организация из списка (что логично), а в кластере есть ссылки слева и текст справа. И не надо при добавлении думать есть там уже метка или нет. Возможно ли как-то это описать в моём случае или придётся самому формировать содержимое балуна ?

Да, речь идёт о .js файлах активных областей в JSON на сервере (по аналогии с тайлами которые)

Зачем тогда Вам активные области?

Используйте сразу кластеры.

Это как бы разные подходы к размещению объектов, активные области больше для облака точек подходят или для вывода тысяч полилиний без потери производительности, как в пробках

Активные области нужны т.к. объектов планируется>100 000

С метками и кластерами пробовал - уже на 20 000 картам не очень хорошо

я не очень представляю как вы хотите чтото кластеризовать по-тайлово. в АПИ используется грид-кластеризация, и разбивать область внутри маленького тайла еще на меньшую сетку это странно, хотя может и получится, попробуйте, и поделитесь потом результатом в клубе

на самом деле представлялось что-то типа того:

например активная область объекта на тайле описывается так:

"объект"

{

  "параметр": "параметр"

}

и выводится балун исходя из параметров. А я наивно полагал, что можно описать несколько объектов на одном и том же тайле с одинаковыми координатами в одном и том же .js файле описания активной области. Что-то типа того:

"кластер объектов"

{[

 "объект"

{

  "параметр": "параметр"

},

"объект"

{

  "параметр": "параметр"

}

]}

и получить при клике не балун а кластер. Предположим всех жителей дома: 1 тайл, одни координаты (дома), 1 .js файл активной области, но много объектов (жители).

Если нет, так нет. Я вообщем-то уже решил это обсчётом всех объектов по каждому адресу и разовым добавлением всей этой инфы в балун. Хотя вероятно можно было переопределить событие клика, но т.к. я с API не так давно знаком мне был ближе первый вариант. Спасибо за помощь. Надеюсь когда-нибудь это всё таки реализуют в API.

Может быть вам уже при формировании хотспотных объектов учитывать объекты, которые находятся в одной точке и передавать один объект вместо пачки, у которого будет массив данных, описывающий сразу все. И при клике на такой объект открывать балун с кастомным макетом, похожим на балун кластера.

Спасибо. Я так в результате и сделал (как и написал выше).