Клуб API Карт

Найдено на тему «список»:
При выделении пункта в списке, изменить цвет иконки на карте
up.deal
10 марта 2017, 15:07

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

Выглядит это так:

По скринам видно, что при выборе Ленинградского проспекта точка не отмечается на карте, потому что она находится в кластере.

Вот текущий код:

$('#checkout-delivery-to-terminal input').on('ifChecked',function(){
        $('#checkout-delivery-to-terminal-terminal-tk').val($(this).closest('.terminal').attr('data-terminal-type'));

        var objectId = $(this).val();

        terminalsManager.objects.each(function(object){
          if(object.id == objectId){
            if(!checked_by_map){
              terminalsMap.setCenter(object.geometry.coordinates, 15);
            }else{
              checked_by_map = false;
            }
            terminalsManager.objects.setObjectOptions(object.id, {
              preset: 'islands#greenDotIcon'
            });
          }else{
            terminalsManager.objects.setObjectOptions(object.id, {
              preset: 'islands#blueIcon'
            });
          }
        });
      });
    });

Как выделить кластер? И может можете предложить вариант поэлегантнее?

2 комментария
список,принадлежность точки
Отображение и скрытие объектов на карте
Dark
8 мая 2015, 08:21

Возможно ли реализовать скрытие\показ геообъекта (в моем случае это многоугольник) по клику в выпадающем списке ListBox (тип checkbox). Как привязать к элементам списка многоугольники и в дальнейшем показывать\скрывать их на карте?

Спасибо.

Ссылка на пример 

6 комментариев
API 2.1,элементы управления,события,контролы,список
ListBoxItem нагружает браузер
IceJOKER
3 мая 2015, 12:07

Здравствуйте, можно ли как-то решить проблемы с нагрузкой ListBoxItem на браузер?
Если добавить в список ListBox более 100-а ListBoxItem, то во-время появления списка браузер начинает тормозить и как только появляется все хорошо.
Проверял добавляя в список 5, 10 и т.д. item-ов и если добавить более 100, то это капец. Добавлял элементы в список лишь после нескольких секун после появления карты и добавления всех объектов, но все равно сильно нагружает.


    for(var i in cats){
        listboxItem = new ymaps.control.ListBoxItem({
            data: {
                content: cats[i].title,
                id: cats[i].id,
                order: i
            },
            options: {
                selectOnClick: true
            }
        });
        item_list.push(listboxItem);
    }

    var catsList = new ymaps.control.ListBox({
        data: {
            content: 'Категории',
            id: -1
        },
        items: item_list
    });

 

p.s. отредактировал текст, на мобильных больше 30 уже подвисает браузер, на десктопных - больше 100-а

2 комментария
API 2.1,элементы управления,контролы,список
Вывод списка объектов карты
V.Kushenkov
7 апреля 2015, 13:55

Здравствуйте! Не могли бы Вы привести пример изначально скрытого подменю (не используя css стили, т.к. при их использовании необходимо нажимать на главный пункт меню 2 раза), а также работу по схеме (пр. выбрано Гл.Меню-1 подменю раскрыто, при выборе Гл.Меню-2, подменю Гл.Меню-1 закрывается и открывается подменю Гл.Меню-2, т.е. чтобы единовременно показывалось подменю только одного главного меню)

Чтобы было проще понять, необходимо сделать меню по типу Аккордион.

Буду очень признателен если Ваш пример будет показан основываясь на этом коде 

1 комментарий
API 2.1,список
Элементы управления. Скрыть выпадающий список
test-executive
12 декабря 2014, 17:48

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

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

Как, после клика в пункт меню скрыть выпадающий список? Вот в этом примере https://tech.yandex.ru/maps/jsbox/2.1/list_box_layout

2 комментария
API 2.1,элементы управления,контролы,список
сss префикс
Пользователь k.
8 октября 2014, 13:40

как можно узнать текущий css_prefix (~номер версии api)  для формирования имен стилей типа:  ymaps-2-1-16-listbox итп
чтоб использовать их в собственных элементах управления.

5 комментариев
API 2.1,контролы,список,элементы управления,макеты,CSS
Добавление событий в control.ListBox
YATITTYTWISTER
2 августа 2014, 06:21

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

Только недавно изучаю JavaScript и апи яндекс карт. 

 

Для добавления событий листбоксу я использую вот  это:

myListBox.get(0).events.add('click', function () {//сделать что-нибудь});

myListBox.get(1).events.add('click', function () {//сделать что-нибудь});

И так далее для каждого элемента в листбоксе. Так как я использую одну функцию для всех кликов, хочется сделать код короче и не лепить подряд одно и то же.

 

Вопрос 1: возможно ли добавлять события циклом? Следующий код у меня не работает:

for (i = 0; i < names.length; i++){

    myListBox.get(i).events.add('click', function () {

        console.log(i);  //при клике на любой элемент возвращает последнее значение i

    });

}

 

Вопрос 2: если вариант с циклом не работает, как можно отдельно описать функцию? Пробовал вот так:

function listBoxItemClicked(i){

    console.log(i); //просто возвращает ноль; листбокс не реагирует на клики

}

myListBox.get(0).events.add('click',listBoxItemClicked(0));

 

Спасибо!

2 комментария
список,элементы управления,события,Javascript,контролы
Баг в 2.1 в control.ListBox
Артём Березин
3 мая 2014, 07:06

Столкнулся, когда пытался переехать с 2.0 на 2.1

Баг заглючается в том, что нельзя добавлять ListBoxItem в ListBox после создания.

Возможно они просто не рендерятся. 

Точнее, если сразу добавить, то все ОК. Но если чуть погодя, то не получается (а у меня они загружаются ajax-запросом)

 

Проще всего продемонстрировать примером из песочницы:

Исходник: http://api.yandex.ru/maps/jsbox/2.1/list_box_layout

Модифицированная версия: http://jsbin.com/hawip/1/edit?js,output (изменения сразу после инстанцирования listBox)

        // Пытаюсь добавить пункты отложено
        setTimeout(function(){
          listBox.add(listBoxItems[0]);
          listBox.add(listBoxItems[1]); 
        }, 100); 

 

5 комментариев
API 2.1,элементы управления,API 2.0,контролы,список
Длина массива.
Удалённый пользователь
24 декабря 2013, 13:45

Код:

 

listBoxItems = [
   new ymaps.control.ListBoxItem({
      data: {
          content: 'пункт 1',
          coords:[
                [57.39, 44.94],
                [56.87, 37.49],
                [55.26, 28.83],
                [53.08, 19.45],
                [50.70, 9.10],
                [47.38, 0.09]
                    ],
           text: 'Информация',.........

listBox.events.add('click', function (e) {
   var item = e.get('target');
   var leng = ..........

 

Подскажите, как вытащить длину массива из data?

Спасибо)

2 комментария
элементы управления,API 2.0,контролы,список
Выбранный элемент по умолчанию в listBox
Удалённый пользователь
5 сентября 2013, 11:31

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

Задача: Есть выпадающий список услуг,  у услуги в data записан id который при выборе передается аяксом и на карте отрисовываются плейсмарки фирм, оказывающих соответствующую услугу. Вопрос: как при загрузке карты и формировании listBoxItems указать что какой то элемент должен быть выбран и имитировать клик по нему.

// В цикле заполняются итемсы

listBoxItems.push(new ymaps.control.ListBoxItem({

                            data:

                                    {

                                        content: '<?php echo $service['name']; ?>',

                                        id: <?php echo $service['index']; ?>

                                    },

                        }, {

                            layout: serviceItemSelectorLayout

                        })

);


// Список

serviceSelector = new ymaps.control.ListBox(

                            {

                                data:

                                        {

                                            title: 'Выберите услугу'

                                        },

                                items: listBoxItems

                            },

                    {

                        position: { top: 0, left: 5 },

                        layout: serviceSelectorLayout,

                        expandOnClick: false

                    });

 

 

В документации максимум что я нашел, это state, но я не понимаю куда и как его запихивать...Поиск тоже ничего не дал...

16 комментариев
элементы управления,API 2.0,контролы,список