Клуб API Карт

HTML ссылка на метку

m21r
25 февраля 2011, 11:51

Сделал карту аптек http://da21.ru/aptechnaya-set/

Объекты добавлены через YMapsML-документ.

Снизу есть HTML текст, с названиями аптек.

Хотелось бы что бы при нажатии на ссылку снизу, открывался нужный баллун с объектом на карте.

Как это можно сделать? Заранее спасибо.

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

К сожалению уровень моих знаний не позволили найти по ссылкам нужный код.

Вы не могли бы дать работающий пример?

Посмотрите пример:

http://api.yandex.ru/maps/jsapi/examples/mapgroupmenu.html

Там работа с группами, но по аналогии можно сделать и для единичных объектов.

Там меню которое формируется скриптом, и выводятся группы меток, мне же нужно открыть баллун с HTML кода...

Тут http://da21.ru/ballooncontentstyle.xml дописываю к объекту ID:

gml:id="10">
...

В код страницы добавляю:

показать на карте
Кликаю на ссылку но баллун не открывается ... :(

а функция openBalloonById у вас определена?


Взял код отсюда http://clubs.ya.ru/mapsapi/replies.xml?parent_id=16182&item_no=16177&with_parent=1#reply-mapsapi-16182

Прописал на странице

   

Баллун по ссылке всё равно не открывается: http://da21.ru/aptechnaya-set/

Ссылка на самом верху страницы...

у вас переменная ml

определена внутри обработчика (функции) с директивой var,

что значит что она локальная

и из функции openBalloonById ее не видно

перенесите объявление openBalloonById туда же где объявляется ml

или "var" перед "ml =" уберите


                    // Создание диспетчера объектов
                    var objManager = new YMaps.ObjectManager();

 

Эти строчки лишние и я том треде об этом писал

надо всё же стараться осмысленно копи-пастить =)

Имею такой код:

Всё равно по ссылке не открывается баллун :(

Сейчас имея такой код

 

   

ссылка

 

показать на карте

не работает...

в ballooncontentstyle.xml

 

            gml:id="10">
                Добрый аптекарь 1
               
                   
                       da1
                       г. Чебоксары, пр. Ленина, д. 57
                       (8352) 57-17-03, 57-04-03
                       Лидия Игнатьевна
                   
               
               
                    47.260196 56.115599
               
           

Поправьте функцию openBalloonById:

function openBalloonById(object_id){
    var filterObjects = ml.filter(function (obj) {
        return obj.id == object_id;   
    })[0].openBalloon();
}
this будет указывать на глобальный объект window. В callback метода filter() передается указатель на объект, с котором и нужно работать.


Лунному тоже советую посмотреть ;)

Огромное спасибо.

Теперь работает B-)

Не могли бы вы подсказать что нужно добавить в код

 

        function openBalloonById(object_id){
            var filterObjects = ml.filter(function (obj) {
                return obj.id == object_id;
            })[0].openBalloon();
        }

что бы при открытии балуна менялся масштаб? Нужен более крупный.

Спасибо.