Клуб API Карт

Получить геообъект с карты по конкретному параметру

Пост в архиве.

Привет всем!

Вот такая ситуация

Есть метки на карте, у каждой есть свое определенное свойство. Как мне лучше получить этот объект?

 

Сейчас делаю перебором всех объектов с поиском нужного уникального параметра, но может есть способ получше?

3 комментария

В версии 2.0.31 появился модуль geoQuery.

Можно как-то так

var result = ymaps.geoQuery(myObjects).search('properties.name="somename"');

result.each(function (placemark) {

    //обработка объектов

})

ага, видел такой модуль. но случаем search() не работает ли таким же перебором?

Это да, в плане оптимизации алгоритма модуль не поможет. Он только поможет сократить число кода.

Если вам нужно быстро находить объект по нужному полю, можно ваши объекты по этому полю как бы проиндексировать. То есть сгенерировать хэш, в котором ключами будут значения полей, а значениями (например) индексы массива или ссылки на нужные объекты. Тогда поиск будет делаться быстро.