Клуб API Карт

Меню для объектов на карте!

Пост в архиве.

Добрый день!

 

Передо мной поставлена задача сделать, инвест карту для своей области.

За пример взято: http://altinvest22.ru/map.html

 

На текущий момент, пока своя БД не заполнена данными, использую БД с информацией, которую взяла в Инете. Хочу посмотреть "как да что делается" в тестовом режиме.

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

Или как сдеать этот пример http://api.yandex.ru/maps/jsbox/object_list красивым выпадающим списком.

 

А в целом просто посоветуйте, пожалуйста в какую стороны идти, что читать!

В js  я "-", но есть поручение -  надо делать.

 

Спасибо!.

4 комментария

1. читаете про js

2. читаете про html+css

3. верстаете свой выпадающий список, можно взять готовый, например из bootstrap или jquery-ui

4. с помощью jquery слушаете события на элементах списка, в обработчиках событий открываете балун соотв. метки

 

Статья в помощь 

Прочитала, попробовала, сделала!

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

 

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

 

Тогда в меню как быть?

В вашем изначальном вопросе нет ничего про кластеры.

Можно посмотреть на этот пример

При клике на статусы карта наводится на конкретные метки в кластере

Посмотрела пример.

Хочу "слить" воедино то что было просто для груп и для кластеров.

 

 

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

Пробовала использовать getIterator() думла если null то кластер пустой.

Но не сработало.

как я могу проверять наличие объектов в кластеер?

этим я хочу пользоваться при обработке клика по заголовку в меню.

 

Также я обрабатываю клик по объекту кластера таким образом:

on('click', function (e) {
           
            ///!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                e.preventDefault();
                var point;
                i = 0;
                while (true)
                {
                    if ( myGeoObjects[i].properties.get('name') == $(this).text())
                    {
                        point = myGeoObjects[i];
                        break;
                    }
                    i++;
                }
                // Выставляем/убираем класс active.
                menuItem
                .toggleClass('active')
                .siblings('.active')
                .removeClass('active');
                // Открываем/закрываем балун у метки.
                myMap.panTo(point.geometry.getCoordinates(), {
                    callback: function () {
                        var state = getState(point);
                        var    cluster = state.cluster;

                        if(state.isShown && (point.getMap() || (cluster && cluster.getMap()))) {
                            openBalloon(point);
                        }
                        else {
                            clusterer.events.once('objectsaddtomap', function () {
                                openBalloon(point);
                            });               
                        }
                    }
                });
            });

 

Вопрос: при количеств элементов порядка 500 оч долго ищется соответствие есть ли способ отыскть объект в кластере быстрее средствами Яндекс.карт, т..е кроме оптимизации поиска путем перепрограммирования простого "прохода" по массиву.?