Клуб API Карт

Поиск маркеров по properties в коллекции

Verstaka
20 мая 2015, 22:23

Есть массив

 

var groups = [

{

coordinates: [55.826564, 37.532527],

title: 'Title',

color: 'gray'

},

{...}

]

 

 

Есть пустая коллекция

myCol = new ymaps.GeoObjectCollection();

 

Из массива достаем нужную инфу и создаем маркеры

 

for (var i = 0; i < groups.length; i++) {

placemark = new ymaps.Placemark(groups[i].coordinates, {

title: groups[i].title,

color: groups[i].color

});

myCol.add(placemark); // Добавляем в коллекцию

}

 

 

Добавляем на карту

myMap.geoObjects.add(myCol);

 

Все работает идеально.

 

А теперь я хочу выбрать все маркеры, у которых color == 'red'

 

 

var result = ymaps.geoQuery(myMap.geoObjects);

console.log(result.search('properties.color == "red"').getLength())

 

Получаю 0.

 

Причем если так,

console.log(result.search('geometry.coordinates.0 > 100').getLength())

То все ищется корректно.

 

Немного поизучав вопрос, выясняется, что на этапе

myCol.add(placemark); // Добавляем в коллекцию

properties теряется.

 

Есть ли варианты, кроме создания разных коллекций?

5 комментариев
Подписаться на комментарии к посту

 

for (var i = 0; i < groups.length; i++) {

placemark = new ymaps.Placemark(groups[i].coordinates, {

title: groups[i].title,

color: groups[i].color

}

myCol.add(placemark); // Добавляем в коллекцию

}

 

Если что-то теряется значит вы это теряете.

Вышеприведенный код некорректен, отсутствуют закрывающая скобка в вызове конструктора метки

 

криво перенес сюда, чтобы не копировать весь код. на боевом все работает.

при данной ошибке ничего бы не работало и сваливалось бы в ошибку. и это точно не может влиять на то что properties по ходу теряются.

дайте ссылку на страницу где теряются properties

Я ответственно заявляю - я идиот :( Ошибка исключительно моя.

 

Все работает как часы!

расскажите как решили проблему?