Клуб API Карт

Как получить идентификатор карты, созданного в YMaps.load?

luberleshka
14 августа 2011, 00:14

Здравствуйте, коллеги!

 

Пришлось столкнуться с задачей размещения карты, уже после загрузке страницы (по клику на кнопке).

Делаю это с помощью следующего обработчика нажатия на кнопку:

YMaps.load(function() {
    var mapContainer = YMaps.jQuery("#photoMap"),
    mapPhoto = new YMaps.Map(mapContainer[0]);
    mapContainer.css("display", "");
    mapPhoto.setCenter(new YMaps.GeoPoint(37.609218,55.753559), 15);
});

Карта успешно создается.

 

Собственно вопрос заключается вот в чем:

Как оперировать этой картой из других участков кода после того как страница загружена и карта создана?

 

Дело в том, что обращаться к идентификатору карты mapPhoto я могу только внутри вышеуказанной секции кода 

YMaps.load(function() {...});

Я пробовал создавать глобальную переменную mapPhoto в надежде что в секции YMaps.load эта переменная будет переопределена вновь созданным объектом карты. Но, увы значение глобальной переменной осталось нетронутым.

 

Подскажите пожалуйста, имеет ли описанная задача решение или стоит искать другой подход?

 

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

Снимаю вопрос.

Решение найдено:

Использовать неанонимную функцию внутри секции YMaps.load в связке с глобальной переменной

см. http://api.yandex.ru/maps/jsapi/doc/dg/tasks/api-loading.xml#how-to-load-api-on-demand