Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.08.2019, 16:08
Интересующийся
Отправить личное сообщение для Богдан94 Посмотреть профиль Найти все сообщения от Богдан94
 
Регистрация: 10.11.2018
Сообщений: 22

Применить фильтр к точкам на Яндекс карте
Друзья, у меня есть две точки на яндекс карте

myPlacemarkWithContent = new ymaps.Placemark([55.661574, 37.573856], {
            hintContent: 'Собственный значок метки с контентом',
            //balloonContent: 'А эта — новогодняя',
            iconContent: '0,62 Га 15230 мВІ'
        }, {
            // Опции.
            // Необходимо указать данный тип макета.
            iconLayout: 'default#imageWithContent',
            // Своё изображение иконки метки.
            iconImageHref: 'images/ball.png',
            // Размеры метки.
            i iconImageSize: [72, 54],
            // Смещение левого верхнего угла иконки относительно
            // её "ножки" (точки привязки).
            iconImageOffset: [0, -54],
            // Смещение слоя с содержимым относительно слоя с картинкой.
            iconContentOffset: [5, 5],
            // Макет содержимого.
            iconContentLayout: MyIconContentLayout
        });  
        
        
        myPlacemarkWithContent1 = new ymaps.Placemark([55.771599, 37.773877], {
            hintContent: 'Собственный значок метки с контентом',
            //balloonContent: 'А эта — новогодняя',
            iconContent: '0,62 Га 15230 мВІ'
        }, {
            // Опции.
            // Необходимо указать данный тип макета.
            iconLayout: 'default#imageWithContent',
            // Своё изображение иконки метки.
            iconImageHref: 'images/ball.png',
            // Размеры метки.
            iconImageSize: [72, 54],
            // Смещение левого верхнего угла иконки относительно
            // её "ножки" (точки привязки).
            iconImageOffset: [0, -54],
            // Смещение слоя с содержимым относительно слоя с картинкой.
            iconContentOffset: [5, 5],
            // Макет содержимого.
            iconContentLayout: MyIconContentLayout
        });


Как мне к ним применить фильтр:
objectManager = new ymaps.ObjectManager({
            // Чтобы метки начали кластеризоваться, выставляем опцию.
            clusterize: true,
            // ObjectManager принимает те же опции, что и кластеризатор.
            gridSize: 64,
            // Макет метки кластера pieChart.
            clusterIconLayout: "default#pieChart"
        });
    myMap.geoObjects.add(objectManager);
 
    // Создадим 5 пунктов выпадающего списка.
    var listBoxItems = ['Школа', 'Аптека', 'Магазин', 'Больница', 'Бар']
            .map(function (title) {
                return new ymaps.control.ListBoxItem({
                    data: {
                        content: title
                    },
                    state: {
                        selected: true
                    }
                })
            }),
        reducer = function (filters, filter) {
            filters[filter.data.get('content')] = filter.isSelected();
            return filters;
        },
        // Теперь создадим список, содержащий 5 пунктов.
        listBoxControl = new ymaps.control.ListBox({
            data: {
                content: 'Фильтр',
                title: 'Фильтр'
            },
            items: listBoxItems,
            state: {
                // Признак, развернут ли список.
                expanded: true,
                filters: listBoxItems.reduce(reducer, {})
            }
        });
    myMap.controls.add(listBoxControl);
 
    // Добавим отслеживание изменения признака, выбран ли пункт списка.
    listBoxControl.events.add(['select', 'deselect'], function (e) {
        var listBoxItem = e.get('target');
        var filters = ymaps.util.extend({}, listBoxControl.state.get('filters'));
        filters[listBoxItem.data.get('content')] = listBoxItem.isSelected();
        listBoxControl.state.set('filters', filters);
    });
 
    var filterMonitor = new ymaps.Monitor(listBoxControl.state);
    filterMonitor.add('filters', function (filters) {
        // Применим фильтр.
        objectManager.setFilter(getFilterFunction(filters));
    });
 
    function getFilterFunction(categories) {
        return function (obj) {
            var content = obj.properties.balloonContent;
            return categories[content]
        }
    }
 
    $.ajax({
        url: "data.json"
    }).done(function (data) {
        objectManager.add(data);
    });
 
}


Помогите друзья))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчёт стоимости проезда по Яндекс карте Sinie_Nebesa Общие вопросы Javascript 0 20.12.2016 07:56
по яндекс карте aleks_lv Элементы интерфейса 2 04.06.2016 18:47
Фильтр для яндекс карты. mo0n Общие вопросы Javascript 3 20.05.2016 18:05
Не появляется скролл на яндекс карте OlegALL Элементы интерфейса 1 14.01.2014 00:14