mFilter2 + яндекс карта
Как можно вывести результаты фильтрации [[+results]] + json?
Делаю яндекс карту, у ресурсов есть координаты, их и нужно получить (что при фильтрации менялись метки).
Додумался только до этого:
Делаю яндекс карту, у ресурсов есть координаты, их и нужно получить (что при фильтрации менялись метки).
Додумался только до этого:
data-id="54" data-coords="59.939095,30.315868" data-title="test2"
У ресурса, и $('.msProduct').each(function(){
var test = $(this).attr('data-coords');
var title = $(this).attr('data-title');
myMap.geoObjects.add(new ymaps.Placemark(test, { balloonContent: title }));
});
Но при пагинации и изменении фильтров конечно же не работает Комментарии: 2
Решил проблему «костылем», или как его назвать:
Ну и с фильтрами работает, благодоря:
$('.tickets-row').each(function () {
var $ticket = $(this);
var id = $ticket.data('id')
var coords = $ticket.data('coords').split(',');
var title = $ticket.data('title');
placemark[id] = new ymaps.Placemark(coords, {balloonContentHeader: title,balloonContent: id}, {preset: 'islands#redIcon'});
clusterer.add(placemark[id]);
});
Ну и с фильтрами работает, благодоря:
$('#mse2_results').bind("DOMSubtreeModified",function(){
clusterer.removeAll();
$('.tickets-row.company').each(function () {
var $ticket = $(this);
var id = $ticket.data('id')
var coords = $ticket.data('coords').split(',');
var title = $ticket.data('title');
placemark[id] = new ymaps.Placemark(coords, {balloonContentHeader: title,balloonContent: id}, {preset: 'islands#redIcon'});
clusterer.add(placemark[id]);
});
myMap.setCenter([59.939095, 30.315868], 10);
});
Полный код для генерации карт
ymaps.ready(function () {
var myMap = new ymaps.Map('map', {center: [59.939095, 30.315868],zoom: 10,behaviors: ['default', 'scrollZoom']}),
clusterer = new ymaps.Clusterer({preset: 'islands#invertedRedClusterIcons',groupByCoordinates: false,clusterDisableClickZoom: true,clusterHideIconOnBalloonOpen: false, geoObjectHideIconOnBalloonOpen: false });
clusterer.options.set({gridSize: 80,clusterDisableClickZoom: false});
var placemark = [];
function generateMap(e) {
$('.tickets-row.company').each(function () {
var $ticket = $(this);
var id = $ticket.data('id')
var coords = $ticket.data('coords').split(',');
var title = $ticket.data('title');
placemark[id] = new ymaps.Placemark(coords, {balloonContentHeader: title,balloonContent: id}, {preset: 'islands#redIcon'});
clusterer.add(placemark[id]);
});
$('.tickets-row.company').click(function(){
var id = $(this).data('id')
placemark[id].balloon.open();
});
$('.tickets-row.company').hover(
function() {
var id = $(this).data('id');
placemark[id].options.set('preset', 'islands#blueDotIcon');
}, function() {
var id = $(this).data('id');
placemark[id].options.set('preset', 'islands#redIcon');
});
}
generateMap();
$('#mse2_results').bind("DOMSubtreeModified",function(){
clusterer.removeAll();
generateMap();
});
myMap.geoObjects.add(clusterer);
clusterer.events
.add('mouseenter', function (e) {
e.get('target').options.set('preset', 'islands#blueDotIcon');
})
.add('mouseleave', function (e) {
e.get('target').options.set('preset', 'islands#redIcon');
});
/* зум на все точки
myMap.setBounds(clusterer.getBounds(), {
checkZoomRange: true
}); */
});
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.