Доброго всем.
Суть проблемы - у меня отдельным скриптом (не js) строится список объектов. Вторым скриптом строяться метки этих объектов на карте. При клике на метку на карте - у меня все нормально открывается ballon и выделяется указанный объект по id. А вот как сделать обратное мне не понять.
При загрузку страницы у меня есть уже все объекты и все их метки на карте. При клике на объект мне надо открыть принадлежащий ему ballon не скрывая всех. Поступить как в примере с "вокзалами" не могу.
Решение
Иногда возникает необходимость
обратиться к объекту ballon соверешенно из другого места, и по некоторым
причинам не возможно / не хочется возиться с оверлеями. Выход из данной
ситуации, такой - при создании карты с метками, группируем их и даем
каждой метке уникальный id. А потом из любого места на страницы мы можем
обратиться к нужной нам метке по id - и вызвать ballon (фильтрация)
код карты:
var group;
// Создание обработчика для события window.onLoad
YMaps.jQuery(function () {
// Создание экземпляра карты и его привязка к созданному контейнеру
var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0]);
// Установка для карты ее центра и масштаба
map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 6);
map.enableScrollZoom();
// Группа объектов
group = new YMaps.GeoObjectCollection();
map.addOverlay(group);
// Добавление объектов
var placemark = new YMaps.Placemark(new YMaps.GeoPoint(37, 55));
placemark.id = 1;
group.add(placemark);
var placemark2 = new YMaps.Placemark(new YMaps.GeoPoint(36, 54));
placemark2.id = 2;
group.add(placemark2);
})
Код фильтрации и вызова ballon:
function openPlacemarkById (id) {
var filterObjects = group.filter(function (obj) {
return obj.id == id;
});
filterObjects[0].openBalloon();
return false;
}
Ну и совсвенно код ссылки:
<a href="#"onclick="return openPlacemarkById(1)">1</a>
За помощь спасибо- собственно он и автор этого всего )))