Клуб API Карт

Поиск по меткам (xml)

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

Имеются метки на карте, вставлены через xml:

var ml = new YMaps.YMapsML( 'http://site.ru/xml/compshop.xml' );
map.addOverlay(ml);

Содежит список компьютерных магазинов, хочу дать возможность пользователям осуществлять поиск по контенту, который содержится в метках. Как можно вставить поле для поиска, как будут выводиться результаты? Можно ли при нахождении записи, чтобы сразу метка была раскрыта на карте?

 

4 комментария
Александр Новиков
28 января 2016, 08:13
Довольно нетривиальная задача. Даже не знаю с какого конца к ней подойти. А вообще-то посоветовал бы перейти от YMapsML на JavaScript API - там хоть есть варианты решения этой задачи.
При добавлении на карту YMapsML-документ представляет из себя группу.

Можно находить заданные элементы с помощью метода filter().

В качестве примера откроем балун у метки, которая была добавлена на карту посредством YMapsML:
var ml = new YMaps.YMapsML('http://api.yandex.ru/maps/ymapsml/examples/mapparams.xml');
map.addOverlay(ml);

YMaps.Events.observe(ml, ml.Events.Load, function () {
   var obj = this.filter(function (obj) {
       return obj.name == 'Имя объекта'
   });
   obj[0].openBalloon();
});

По аналогии можно искать, например, подстроку в описании объектов.
Попробовал выполнить данный пример кода, балун не открывается. В Firefox в консоли ошибок пишется obj[0] is undefined
В этом топике обсуждается подобная задача.