Клуб API Карт

Обновление меток с загрузкой через yxml

arkhipenko@mosautoshina.com
26 ноября 2016, 13:34

Задача заключается в изменении цвета метки после выделения в многоугольнике и изменения определенного параметра в бд. Сделать это через изменение пресета не получается, так как после этого данные метки и балуна ломаются. 
Я остановился на идее удаления и добавления выделенных балунов после запроса к базе, но это срабатывает только один раз, после метки уже не удаляются, а только добавляются. Как я понимаю, это происходит из-за уникальности объекта, но как мне ее обойти стороной?
 

myPolygon.events.add('click', function (e) {
            		var objectsInsidePolygon = ymaps.geoQuery(myMap.geoObjects).searchInside(myPolygon);
            		var orders_string = '';
            		for (i = 0; i < objectsInsidePolygon._Ol.length; i++) {
            			orders_string += objectsInsidePolygon._Ol[i]['_oh']['_Jh']['_K'].id;
            			orders_string += ',';
            		}
            		orders_string = orders_string.slice(0,-1);

            		showDriversOrderList(orders_string, markLink, markLink2, objectsInsidePolygon, orders_string, myMap);
            	});

//...

function showDriversOrderList(order_list, markLink, markLink2, objectsInsidePolygon, myMap)
{
	for (i = 0; i < orders_array.length; i++) {
		$('#tr_order_'+orders_array[i]).addClass('driver_glow');				
	} 
	for (i = 0; i < objectsInsidePolygon._Ol.length; i++) {
		for (x = 0; x < orders_array.length; x++) {
			if (objectsInsidePolygon._Ol[i]['_oh']['_Jh']['_K'].id == orders_array[x]) {
				markLink.remove(objectsInsidePolygon._Ol[i]);
				markLink2.remove(objectsInsidePolygon._Ol[i]);
			    myMap.geoObjects.remove(objectsInsidePolygon._Ol[i]['_oh']['_Jh']['_K']);	
				markLink.remove(objectsInsidePolygon._Ol[i]['_oh']['_Jh']['_K']);
				markLink2.remove(objectsInsidePolygon._Ol[i]['_oh']['_Jh']['_K']);
				markLink.remove(objectsInsidePolygon);		
				markLink2.remove(objectsInsidePolygon);	
//Никакой способ из вышеприведенных не срабатывает как нужно				
			}					
		}
	}

    ymaps.geoXml.load('export.php?orders='+orders_array.filter(onlyUnique)+'&d=<?=date('Y-m-d:h:i:s')?>')
            .then(function (res) {
                markLink2.add(res.geoObjects);
            });
}

markLink1 = res.geoObjects; // первая половина меток
markLink2 = res.geoObjects; // вторая половина меток