Клуб API Карт

показ уже созданного баллуна

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

два дня ни как не могу разобраться.

есть метки, и у каждой баллун

нажымаю ссылку на сайте и попадаю к центру метки, но как открыть балун этой метки? 

в api нашол на создать с параметрами name parametrs...

 

пробывал так

map.openBalloon(placemark15)

map.openBalloon(map.placemark15)

placemark15.openBallon(


заранее благодарна!

17 комментариев

placemark15.openBalloon();

placemark15.openBalloon() выведена в отдельную функцию

надо было дописать map.placemark15.openBalloon() ?

но TypeError: Cannot call method 'openBalloon' of undefined

у меня уже есть и имя и описание балуна, как просто открыть балун зная переменную placemark (к примеру placemark15)

 

function onmapshow(coordinates_x,coordinates_y,balloon_id){

map.setCenter(new YMaps.GeoPoint(coordinates_x,coordinates_y), 18);

map.placemark22.openBalloon();

jQuery.scrollTo('#pk_map',800);

}

 

дописывать map не надо

сделайте palcemark15 глобальной переменной

и почитайте про области видимости переменных в javascript

Да Вы правы, placemark15 (и 22) стали глобальными, но все равно есть ошибка TypeError: Cannot call method 'openBalloon' of undefined


function onmapshow вынесена с кода // Создание обработчика для события window.onLoad

        window.onload = function () {...


к примеру map у меня тоже глобальная и это работает - map.setCenter(new YMaps.GeoPoint(coordinates_x,coordinates_y), 18);

как обьявить openBalloon ?

 

как обьявить openBalloon ?

его не надо объявлять

 

ошибка TypeError: Cannot call method 'openBalloon' of undefined

это значит что объект у которого вы вызываете метод openBalloon не существует или не видим там где вы его вызываете

Вы абослютно правы. Проблема была в том что при создание меток надо было убрать var placemark

это второй var как бы локальной метку делал!

Спасибо большое!

 

Подскажите пожалуйста мне еще последний момент:

балун уже открываеться placemark15.openBalloon()

 

но как в функции вытащить и заставить открывать балун зная эго id

ни jQuery ни javascript не вытягивают обьект( 

 

function onmapshow(coordinates_x,coordinates_y,balloon_id){

map.setCenter(new YMaps.GeoPoint(coordinates_x,coordinates_y), 18);

temp_placemark = YMaps.getElementById("#"+balloon_id);

temp_placemark.openBalloon();

}

 

 

Было найдено в Вашем клубе решение

 

$ = YMaps.jQuery;

temp_placemark = $("#"+balloon_id);

 

и такой вариант не работает:

temp_placemark = YMaps.map(getElementById("#"+balloon_id));

 

опишите подробнее какую задачу Вы решаете?

 

1. Есть карта

2. На ней 90 меток (placemark) каждая которая открывает балун

3. после карты идет таблица со списком всех меток

4. ячейка(в каждой строке таблицы) с названием метки вызывает функцию onmapshow

5. функция onmapshow выполняет действия:

           переходит к карте (якорь)

           открывает карту ровно по центру метки (работает)

           открывает балун (не работает)


в onmapshow передаеться три параметра

1. координата x - все ок

2. координата y - все ок

3. id метки 


вот такие действия, а проблема описана выше(

можно ли добавить к placemark.id 

к таким описания?

placemark.name = .....

placemark.description= ...

можно ли добавить к placemark.id 

к таким описания?

placemark.name = .....

placemark.description= ...

я рекомендую вам сформировать YMapsML со своими данными (метками) и затем добавить его на карту и на его же основании сформировать таблицу с ссылками

вот пример подобного

http://api.yandex.ru/maps/ymapsml/examples/menufromymapsml.html

хорошее решенеие, но переделывать уже неохотно, по той причине что все готово, и при переделывание возникнет еще 5 вопросов и трудностей, а так уже все готово, осталось только выборку метки сделать :(

присвоил каждой метке id - placemark.id = placemark15;

 

и сама выборка

$ = YMaps.jQuery;

temp_placemark = $('#'+balloon_id);

 

так почему то не срабатывает :(

можно ли добавить к placemark.id 

к таким описания?

placemark.name = .....

placemark.description= ...


 


можно ли добавить к placemark.id 

к таким описания?

placemark.name = .....

placemark.description= ...


 


можно ли добавить к placemark.id 

к таким описания?

placemark.name = .....

placemark.description= ...


 


можно ли добавить к placemark.id 

к таким описания?

placemark.name = .....

placemark.description= ...