Отображение YMapsML

YMapsML (Yandex Maps Markup Language) — XML-язык, предназначенный для описания и отображения различных географических объектов на картах Яндекса. Подробное описание языка приводится в Справочнике по языку YMapsML.

Объект YMaps.YMapsML позволяет отобразить YMapsML-документ на карте, используя JavaScript.

Чтобы отобразить документ передайте на вход конструктора YMaps.YMapsML URL документа, а затем добавьте созданный объект-оверлей на карту.

Примечание

Загружаемый YMapsML должен быть доступен публично по протоколу http.

var ml = new YMaps.YMapsML("http://api.yandex.ru/maps/ymapsml/examples/html/xml/demonstration.xml");
map.addOverlay(ml);

Так как загрузка YMapsML документа - асинхронный процесс, отслеживайте окончание загрузки с помощью события Load.

Чтобы получить возможность просматривать ошибки при загрузке YMapsML-документа, прикрепите обработчик к событию Fault. Например:

YMaps.Events.observe(ml, ml.Events.Fault, function (ml, error) {
    alert("Произошла ошибка: " + error);
});

Открыть пример в новом окне

Так как созданный объект-оверлей принадлежит классу YMaps.GeoObjectCollection, с ним можно обращаться как с группой.

Например, для поиска объекта по какому-либо параметру используйте метод группы filter(). Пример ниже открывает балун над меткой, добавленной на карту с помощью YMapsML:

var ml = new YMaps.YMapsML("http://api.yandex.ru/maps/ymapsml/examples/html/xml/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();
});