Клуб API Карт

Добавление GeoQueryResult в ObjectManager

Rex
16 марта, 21:35

Можно ли как-то GeoQueryResult, полученный в результате myObjects.search(***), добавить в ObjectManager? Почти весь функционал построен на ObjectManager, и теперь не могу из-за этого седлать элементарные выборки по объектам на карте.

Если такое невозможно, можете хотябы подсказать, как удалить объекты (например маркеры) после того, как они были добавлены на карту?

function searchFunc()
{
var res =  new ymaps.GeoQueryResult();
window.myObjects = ymaps.geoQuery(myPlacemark);
//myPlacemark - строка с json-описаниями геометрии
					
res = myObjects.search('options.preset = "islands#greenDotIcon"');
			
/*
Здесь нужно как-то удалять то, что было добавлено на карту в результате предыдущего выполнения функции searchFunc().
*/
			
res.addToMap(myMap);
}

4 комментария
Подписаться на комментарии к посту
Можно
непонятно, что именно не получается
dimik,
Ну... objManager. add(res); работать не будет. Как быть?  Покажите простейший пример, если не сложно. 
Обновлено 17 марта, 08:10
Rex,
Какой кейс (для чего делать эти выборки)? сколько всего у вас меток? чем не устраивает setFilter?


Перенести объекты из geoQuery в OM можно через each
res.each(function (geoObject, index) {
objManager.add({
  type: 'Feature',
  // тут надо указать уникальный id
  id: index,
  geometry: {
    type: geoObject.geometry.getType(),
    coordinates: geoObject.geometry.getCoordinates()
  },
  properties: geoObject.properties.getAll(),
  options: geoObject.options.getAll(),
});
});
Обновлено 17 марта, 08:30
dimik,
меток много, а setFilter недостаточно гибкий для моих целей. За пример с each спасибо :) Именно то, что нужно.