Клуб API Карт

Найдено на тему «кластеризатор»:
Выбрать объект при клике внутри balloonContent
Krem-Ilia
23 августа 2016, 19:19

Имеется следующее: множество меток на карте, кластеризация включена.

В случае, когда две и более метки приходятся по одному адресу, при клике случается следующее:

Это я сделал путём добавления нужного balloonContent и balloonCaption в properties меток.

В объектах objectManager-а у меня повешен клик:

objectManager.objects.events.add('click', event => { ... }) // - вот так

Вопрос такой - как этот же клик применить к кликам по элементам меню слева на скриншоте? То есть чтобы можно было не только просматривать информацию, но и выбрать элемент. Есть ли какой-то простой способ это сделать с помощью какой-нибудь опции-колбека, куда сразу приходит метка, например?

И ещё у меня попутно возник вопрос, есть такие свойства у кластера, как clusterIcons и clusterIconContentLayout, например. Если смотреть документацию, в том числе тут: https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer-docpage/, то они есть в примерах, но как будто не задокументированы. Есть где-то место, где можно увидеть на них документацию?

6 комментариев
кластеризатор,события,метка
Как спозиционировать карту, что бы все метки были видны?
Удалённый пользователь
29 июня 2016, 18:07

Здравствуйте! Подскажите пожалуйста, как в данном примере сделать так, что бы карта позиционировалась под все результаты выводимые на карту.

пробовал

myMap.setBounds(objectManager.clusters.getBounds());
myMap.setBounds(myMap.geoObjects.getBounds());

В первом случае - ошибка, во втором null.

2 комментария
кластеризатор,автоцентрирование карты
Кластеры за пределами видимой области карты
Швалёв Дмитрий
4 июня 2016, 13:54

Добрый день, есть задача соединить линиями кластеры геообъектов. На карту добавляются геоточки, затем добавляются кластеры, по координатам кластеров (geometry.getCoordinates()) создаётся ломаная (Polyline).

Проблема возникает когда кластер уходит за пределы видимой карты. В документации
https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Clusterer-docpage/
есть упоминание: "Если объект не попадает в видимую область карты, он не будет добавлен на карту.", поэтому, как мне кажется, кластер уходя за видимую область удаляется и к нему невозможно нарисовать линию.

Подтвердите это пожалуйста, если это действительно так?

Пробовал увеличить параметр кластера: options.viewportMargin, но из-за этого увеличивается время обработки карты вплоть до того, что картой становится невозможно пользоваться.

Каким образом можно решить эту задачу, можно ли сделать чтобы кластеры создавались за пределами видимой области карты или может получить координаты кластеров которые не добавлены на карту?

1 комментарий
кластер,кластеризатор,полилиния,координаты
Странное поведение кластеризатора при масштабировании
Макс
17 января 2016, 17:35

Достаточно простая задача - отображение на карте данных из файла CSV. Метки грузятся, кластеризация отрабатывает. Но на определенном масштабе при приближении карты метки начинают исчезать с карты, хотя в другом масштабе эти же метки кластеризуются, то есть на карте они точно есть. Что я только не делал -  использовал и clusterer, и ObjectManager, и разные версии api, и с параметрами кластера эксперементировал, - ничего не помогает. Браузер - Chrome, меток около двух тысяч. Загрузка точек через файл CSV - крайне желательное условие, мне надо, чтобы данные можно было обновить из экселевской таблички с минимумом усилий и с этим справился обычный пользователь.

Вот моя страница http://krs.pe.hu/map.html  Там видны закоменченные следы моих экспериментов, жду любых дельных советов, как сделать, чтобы все метки отображались при любом масштабе карты.

1 комментарий
кластеризатор,API 2.1
Замена стандартного кластеризатора своим на действующей карте
Роман Я.
13 декабря 2015, 11:17

Добрый день.

 

Есть Яндекс-карта, доступная в JS по переменной map. Эта карта уже имеет множество геообъектов и стандартный кластеризатор.

И есть новый кластеризатор с расширенным функционалом, который доступен по переменной newClusterer.

 

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

1 комментарий
кластеризатор,API 2.1
Типовое строительство на карте страны
Sergei Erjemin
12 декабря 2015, 06:57

Всех приветствую. Делаю проект для рынка пластиковых окон. Идея крутится вокруг того факта, что все мы живем в панельных домах и зданиях типовых проектов. У них все одинаковое. Включая и оконные проемы. А это значит, что собрав данные по типовым домам, можно сильно упростить выбор окон. Ведь предварительных измерений проема перед можно не производить. Да и звонить оконным компаниям не надо. Не надо ждать пока они произведут предварительные расчеты... Оконные компании могут все предварительно рассчитать, и пользователю останется только выбрать!

Как одна из частных задач — отображение зданий типовых проектов на карте. В решении это задачи очень помог API Яндекс.Карт. Получилось вот так:

Окнардия: Здания типовых проектов на карте

Данных очень много (даже в сжатом-упакованном виде они весят более 1.2 Mb) и все работает прекрасно! Поэкспериментировать с полученной картой можно кликнув тут или по картинке.

P.S. Прошу прощения если на сайте что-то не работает. На страничке по ссылке со временем будет еще и другая графическая информация (пока ее нет), не все данные пока введены, не все типовые серии домов обработаны, и т. д. Главное, что кластеры и круговые диаграммы Яндекс.Карт работают и выглядят мега-круто!

P.P.S. По ходу изучения API обнаружилась маленькая ошибочка в кластеризаторе Pie Charts. Мне ее помогли решить на Toster.ru ... Кому интересно отображение произвольных цветов на Pie Charts, читайте историю вопроса по ссылке: https://toster.ru/q/274100

2 комментария
API 2.1,примеры реализации,балун,метка,геокодирование,примеры проектов,кластеризатор
Открыть балун метки в клатере
nstreltsov2
16 ноября 2015, 12:39

Всем привет.

На карте есть некоторое количество меток, метки добавляются через кластер.

При нажатии на ссылку вне кластера необходимо открывать балун метки, даже если он в кластере, т.к. раскрыть кластер и открыть балун.

Делаю вот так:

function showPlacemark(index){

//переходим к карте

    window.scrollTo(0,300);

    //узнаем ID массива точек из ссылки

    test123 = pointsE[index];

 

    //позиционируемся на точке, задаем максимальный масштаб = 15

    map.setCenter(pointsE[index].geometry.getBounds()[0], 15, {

        checkZoomRange: true, //контролируем доступность масштаба

        callback: function() { //спозиционировались

            pointsE[index].events.once('mapchange', function(e){

                //точка появилась

                if( e.get('map') != null) {

                    //точка загрузилась

                    setTimeout(function() {

                        //задержка

                        pointsE[index].balloon.open();//открытие балуна

                    }, 3000);

                }else{

                }

            });

        }

    });

 

Кластер раскрывается, но балун не открывается. Подскажите, пожалуйста, где у меня не так?

3 комментария
метка,кластеризатор,API 2.1,балун
Компонент Яндекс Карты для Joomla теперь бесплатен
Валерий
11 ноября 2015, 10:51

Компонент Яндекс Карты для Joomla http://xdan.ru/komponent-yandeks-karty-dlya-joomla.html теперь бесплатен. Вы можете скачать бесплатную версию которая ничем не отличается от платной. В платной версии лишь пристуствуют дополнительные узкоспециальные расширения.

Компонент обновляется практически каждый день. 

Возможности на данный момент такие:

  • Интеграция с компонентом K2. Возможность использовать его категории и материалы на карте.Видео
  • Настраиваемый фильтр по категориям. Одному объекту могут соответствовать несколько категорий.
  • карта на весь экран Пример
  • интеграция с Zoo - вывод любых элементов на Яндекс карте. Удобно для каталога товара
  • интеграция с компонентом Пользователи - пользователи редактируют свое местоположение в профиле, а вы их показываете на карте
  • вывод Яндекс Карты на любой странице сайта, в любом компоненте(Zoo, K2, content и т.п.) и модуле
  • вывод модуля с картой
  • вывод карты с тысячами(десятками тысяч) точек без тормозов
  • вывод линий, многоугольников, окружностей, собственных меток с произвольным изображением. Удобный визуальный редактор. Пример. Попробуйте создать объект
  • добавление новых точек пользователями прямо на странице карты. С премодерацией и постмодерацией
  • вывод списка объектов карты рядом с картой, с несколькими эффектами перехода на точку
  • импорт - экспорт элементов и настроек
  • полная настройка кластеризатора Яндекс Карт в несколько кликов. Все настройки из Яндекс API
  • полностью совместимо с Joomla 2.5.x и с 3.x
  • вывод карты с произвольным адресом прямо из вашего редактора
  • подробная документация
  • постоянное развитие и поддержка компонента. Смотрите ниже, список последних изменений
  • вывод материалов Joomla на карте http://www.vtourisme.com/o-sajte
  • Вывод на одной карте местоположения всех пользователей. Пользователь сам настраивает свое местоположение в профиле при помощи удобной миникарты и поля адреса. Пример: Зарегистрируйтесь на этом сайте и вы увидите себя карте выше.

Прошу Яндекс, исправьте пожалуйста в списке на Бесплатный

20 комментариев
компонент,кластеризатор,Joomla,API 2.1
Как добавить в кружок кластера свое значение?
Удалённый пользователь
6 ноября 2015, 14:27

У меня из БД идут данные.

id, Координаты, Цена

Подскажите каким образом можно сделать следующее:

У меня 20 магазинов попали в один кластер, т.к. в кружке цифра 20.

Мне нужно ниже цифры 20 написать цены этих магазинов через тире "-" .

min(цена) - max(цена) .

1 комментарий
кластеризатор,API 2.1
Ссылка в balloonContentHeader при кластеризации
flusovs
19 октября 2015, 12:26

Доброго Вам времени суток.

 

Исходные данные (используется)

1. api-maps версии 2.1

2. loadingObjectManager = new ymaps.LoadingObjectManager(

            '/Map/GetOrganizations4LOM?coord=%b', {

                // Включаем кластеризацию.

                clusterize: true

            });

3. На серверной стороне написан класс PropertiesFeature, который вытаскивает данные из инстанса организации и подставляет их в данный класс в виде html.  

 public class PropertiesFeature

 {

      public PropertiesFeature(Organizations org)

      {

         balloonContentHeader = string.Format("<a href='{0}'>{1}</a>", url, org.Name);

         ....

         balloonContentBody = html;

         ....

         balloonContentFooter = html;

      } 


        public string balloonContentHeader;

        public string balloonContentBody;

        public string balloonContentFooter;

 }

 

Отсюда возникает 2 вопроса:

  1. Правильно ли формировать html разметку для balloonContentHeader.
  2. В случае если объект кластеризован, то при нажатии на кластер открывается окно с со спиком объектов для данного адреса. При этом нажатие на название организации в списке приводит к открытию новой вкладки вместо открытие таба на карте. Как подавить подобное поведедение если объект кластеризован. 

 

 

P.S.: текущее решение можно посмтортеть на сайте http://ved-services.com/Map

5 комментариев
кластеризатор,события,балун
Цвета меток JSON
nstreltsov2
19 октября 2015, 01:24

Всем привет.

В JSON передаю некоторое количество объектов, не разобрался как ставить цвет для кластера, для одиночного элемента, я понял так "options":{"preset":"islands#greenDotIcon"}

В идеале хочется сделать как на картинке https://yadi.sk/i/hGDnY7n5jphVs , чтобы еще кластер раскрашивался в зависимости от точек в нем.


Подскажите, пожалуйста, как это сделать?

2 комментария
кластеризатор,API 2.1
Опции кластера при использовании PieChartClusterer
Кирюха Вот
17 октября 2015, 15:15

День добрый.

 

Насколько я понимаю, при использовании круговых диаграм для отрисовки кластера ( http://clubs.ya.ru/mapsapi/53340 ) никакие опции самого кластера настроить невозможно ? В первую очередь интересует расположение балуна кластера внизу страницы, как при balloonPanelMaxMapArea = infinity для маркера.


ЗЫ.


В догонку хотел сообщить о баге в плагине по ссылке выше.


Если кликнуть по одиночному маркеру на высоком, но не предельном значении зума и оставить раскрытым баллун маркера (при balloonPanelMaxMapArea = infinity), а после откручивать зум назад, так, чтобы "активный" маркер не ушел за пределы карты и попал в кластер, то вылетает ошибка "preset.match is not a function" ( https://github.com/yandex/ymaps-pie-chart-clusterer/blob/master/src/pieChartClusterer/PieChartClusterer.js строка 51). Причина в том, что в match попадает не ожидаемая строка, а объект.

 

Копаться и выяснять из-за чего такие дела - увы, времени нет, но решение на колене такое:

 

function getIconStyle(preset) {

// !!! FIX

if(typeof(preset) === 'object') {

return preset[0].match(STYLE_REG_EXP)[1];

}

return preset.match(STYLE_REG_EXP)[1];

}

2 комментария
кластеризатор,API 2.1
Не удаётся удалить метки из кластера и карты.
leon-nim
13 октября 2015, 21:57

Сдравствуйте, пытаюсь удалить все метки для того, что бы поставить новые, но они не удаляются. Удаляю так:

    cluster.removeAll();
    map.geoObjects.removeAll();
    map.geoObjects.remove(cluster);

если после этого кода дописываю:

   cluster.refresh();

То метки удаляются, но выскакивает ошибка: TypeError: cluster.refresh is not a function

Помогите, пожалуйста.

 

 

7 комментариев
метка,кластеризатор
Баллун кластера при наведении.
leon-nim
9 октября 2015, 00:53

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

Мне нужно отобразить свой баллун над кластером при наведении на него мышью, но при этом, при клике на кластере баллун не должен отображаться.

Содержимое балуна формируется динамически.

Для отключения отображения при клике я отключирл отображение балуна кластера: hasBalloon: false. И хочу использовать балун карты.

Подскажите пожалуйста:

Как узнать координаты кластера, что бы вывести над ним балун карты?

Как перерисовывать балун под новое содержимое или он сам перерисуется?

Правильной ли я дорогой иду или можно отключить отображение балуна кластера при клике и отображать при наведении?

Если можно, дайте ссылки на примеры.

 

1 комментарий
кластеризатор,события,балун
Как можно отметить множество адресов на карте ?
Рекламное Агентство ИдеИ
6 октября 2015, 11:57

Добрый день !!!

Скажите пожалуйста как можно отметить много адресов на карте (не ручным методом), есть файл в exel с адресами, колонки ( улица, дом) , хотелось бы это разместить на карте ?

Заранее спасибо!!!

2 комментария
метка,кластеризатор,геокодирование,API 2.1,YMapsML
Свои иконки для кластера в Joomla компоненте и многое другое
Валерий
2 сентября 2015, 17:34

Время идет и Компонент Яндекс Карты для Joomla с каждым днем становится все функциональнее.

На сегодня это то, что с версии 3.0.9 в нем можно задавать Категориям - любое количество Карт, а объектам - любое количество категорий. На деле это значит, что можно делать множественные фильтры  по типам объектов, или выводить на одной карте, лишь часть категорий, а на другой все категории не копируя их в каждую карту.

Одна из новых настроек: теперь можно задавать собственные иконки для кластеров. На изображении установлены 3 варианта иконок: для менее 100 объектов, для менее 1000 и менее 10000

 

Результат можно увидеть на этом примере

Еще были устранены все известные ошибки в онлайн Конструкторе карты. Теперь он очень похож на Конструктор Яндекс Карт от Яндекса, но в отличие от него он работает у вас на сайте и сохраняет все данные в базу

Новый функционал добавляется не без подсказки уже купивших пользователей. 

Если есть вопросы, пишите тут или в блоге. Всем отвечу. Всем карт!

компонент,кластеризатор,Joomla,API 2.1
Управляемое изменение масштаба карты при клике на кластер
Игорь
31 августа 2015, 14:21

Добрый день. 

Есть ли в стандартном функционале возможность настроить масштаб при клике на кластер? Иначе приближение получается слишком большим.

Спасибо.

1 комментарий
кластеризатор,события
Перехват клика на кластере не работает
Удалённый пользователь
17 августа 2015, 14:36

API 2.0

Пытаюсь перехватить события маркеров кластера при клике и даблклике.

В итоге - когда кластер при зуме распадается на отдельные точки - на этих точках перехват работает (балун не открывается, срабатывает алерт).

Когда маркер кластера "групповой" - перехват не работает. Открывается балун. И срабатывает алерт. (((

 

    var myMap;
    var clusterer;
    var PointArray = [];

    ymaps.ready(init);

    function init(){ 
        myMap = new ymaps.Map ("map", {
            center: [47.096022, 37.548734],
            zoom: 12
        },{     minZoom:8,
              maxZoom:18
        });

        myMap.controls.add('zoomControl', { left: 5, top: 5 });
        myMap.behaviors.enable('scrollZoom');
        myMap.behaviors.disable('dblClickZoom');

        clusterer = new ymaps.Clusterer({clusterDisableClickZoom: true, synchAdd: true});

        clusterer.events.add('dblclick', function (e) {
           e.preventDefault();
            alert('clusterer dblclick');   
        });

        clusterer.events.add('click', function (e) {
           e.preventDefault();   
           alert('clusterer click');   
        });

        addToPointArray(47.091, 37.541, 'twirl#redIcon', 'id1', 'text1');
        addToPointArray(47.093, 37.543, 'twirl#redIcon', 'id2', 'text2');
        addToPointArray(47.095, 37.545, 'twirl#redIcon', 'id2', 'text2');

drawCluster('twirl#blueIcon');
       
   }

    function addToPointArray(CoordX, CoordY, IStyle, ID, Text){
        point = new ymaps.GeoObject({
            geometry: {type: "Point", coordinates: [CoordX, CoordY]},
            properties: {
                clusterCaption: ID,
                balloonContentBody: Text,
            balloonContentHeader: ID,
                //balloonContentFooter: "Подвал",
                hintContent: ID
            }
        },{
            preset: IStyle
           
        });

        point.events.add('click', function (e) {
           //e.preventDefault();       
        });

        point.events.add('dblclick', function (e) {
            //e.preventDefault();
        });

        PointArray.push(point);
    }

    function drawCluster(CStyle){
        clusterer.options.set('preset',CStyle);
        clusterer.add(PointArray);

        myMap.geoObjects.add(clusterer);
    }   


Пример - здесь:

 https://jsfiddle.net/bdv09t1n/ 

5 комментариев
метка,кластеризатор,события,API 2.0
Метод slice в макете балуна кластера
lapinadaria
13 августа 2015, 18:09

Добрый день!

Хочу сделать в балуне кластера вывод информации не по всем объектам, а по первым десяти.

Пытаюсь для этого использовать такой перебор

 {% for geoObject in properties.geoObjects.slice(0,10) %}

но в итоге совсем ничего не выводится.

 

Как правильно перебрать только часть объектов кластера?

5 комментариев
кластеризатор,API 2.1,балун
как брать иконку кластера из JSON?
pmikle3
12 августа 2015, 17:39

Добрый день!

Согласно примеру из песочницы, здесь

1) создается "пустая" коллекция

2) "пустая" коллекция добавляется на карту

3) в коллекцию добавляются метки из JSON массива (они автоматически отображаются на карте)

Я хочу динамически загружать коллекции меток на карту с разными иконками меток и кластеров.

Я разобрался как задать иконки меток в JSON.

Можно ли в JSON указывать иконку кластера?

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

2 комментария
кластеризатор,GeoObject,JSON