Клуб API Карт

Как обратиться к созданному экземляру карты?

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

Итак, я с ЯКартами только начинаю знакомиться, возник вопрос:

создать карту, добавить на нее необходимые элементы (метки, маршруты(ломаные)) во время инициализации - нет проблем. Загвоздка в добавлении, скажем, метки на уже проинициализированную карту.

Итак, имеем страницу с ЯКартой, имеем функцию:

function SetPoint(lon,lat){

            var s = new YMaps.Style(
            s.iconStyle = new YMaps.IconStyle(
            s.iconStyle.href = "/tpl/car.png";
            s.iconStyle.size = new YMaps.Point(50, 29);
            s.iconStyle.offset = new YMaps.Point(-25, -29);

            var placemark = new YMaps.Placemark(new YMaps.GeoPoint(lon,lat), {style: s}
           
map.addOverlay(placemark);

}

и имеем ссылку на странице, которой прописано:

 

onClick="SetPoint(37.481769561768,55.663803100586);"

соответственно, по клику по данной ссылке функции SetPoint передаются координаты новой метки, в функции создается стиль для метки, сама метка, а вот последняя строка кода функции:

 

map.addOverlay(placemark);

не работает.

Вопрос - как добавить новую метку на карту, на что нужно заменить последнюю строку функции, как обращаться к уже проинициализированной карте?

Заранее спасибо за помощь, она очень нужна!

6 комментариев
Я вот так добавляю метки

   

Видимо что-то не добавилось у вас в посте! :)

можно поставить любой js-отладчик (например firebug) и увидеть во вкладке консоль, что переменная map не видна из вашей функции.

Вынесите ее в глобальную область видимости

Если вам не трудно, подскажите как сделать map глобальной переменной, с JS я тоже начал разбираться паралельно ЯКартам.

Спасибо!

Уже разобрался, спасибо! Просто при создании экземпляра карты не нужно использовать var перед переменной map.

День прожит не зря! ;)

 

Просто при создании экземпляра карты не нужно использовать var перед переменной map.

 

нет можно и с var просто ее объявление нужно вынести из всех функций