Клуб API Карт

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

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

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

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

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

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

 

пробывал так

map.openBalloon(placemark15)

map.openBalloon(map.placemark15)

placemark15.openBallon(


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

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

placemark15.openBalloon();

Удалённый пользователь
28 января 2016, 05:17

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

Удалённый пользователь
28 января 2016, 05:17

Да Вы правы, 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 не существует или не видим там где вы его вызываете

Удалённый пользователь
28 января 2016, 05:17

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

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

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

Удалённый пользователь
28 января 2016, 05:17

 

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

балун уже открываеться 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));

 

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

 

Удалённый пользователь
28 января 2016, 05:17

1. Есть карта

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

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

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

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

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

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

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


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

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

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

3. id метки 


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

Удалённый пользователь
28 января 2016, 05:17

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

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

placemark.name = .....

placemark.description= ...

Удалённый пользователь
28 января 2016, 05:17

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

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

placemark.name = .....

placemark.description= ...

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

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

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

Удалённый пользователь
28 января 2016, 05:17

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

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

 

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

$ = YMaps.jQuery;

temp_placemark = $('#'+balloon_id);

 

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

Удалённый пользователь
28 января 2016, 05:17

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

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

placemark.name = .....

placemark.description= ...


 


Удалённый пользователь
28 января 2016, 05:17

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

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

placemark.name = .....

placemark.description= ...


 


Удалённый пользователь
28 января 2016, 05:17

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

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

placemark.name = .....

placemark.description= ...


 


Удалённый пользователь
28 января 2016, 05:17

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

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

placemark.name = .....

placemark.description= ...