Друзья, у меня есть две точки на яндекс карте
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);
});
}
Помогите друзья))