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 }));


	});
Но при пагинации и изменении фильтров конечно же не работает
but1head
04 декабря 2014, 20:14
modx.pro
6
1 741
0

Комментарии: 2

but1head
05 декабря 2014, 02:54
+1
Решил проблему «костылем», или как его назвать:

$('.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);
});
    but1head
    05 декабря 2014, 09:52
    0
    Полный код для генерации карт

    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
    		}); */
    
    	});
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2