Клуб API Карт

Как передать в функцию метку

bystrovzorov
26 июня 2011, 18:05

Создаю метки из массива "а"
   
map = new YMaps.Map(document.getElementById("Main")
    map.setCenter(new YMaps.GeoPoint(37.64, 55.76), 10);
    for (var i = 0; i < a.length; i++) {
        placemark = new YMaps.Placemark(new YMaps.GeoPoint(a[i].lat, a[i].lng)
        placemark.name = DictPlace(a[i]).name;
        placemark.description = a[i].desc;
        placemark.id=i
        map.addOverlay(placemark);

        s += "<a href=\"javascript:showPlace('"+a[i].lng+"', '"+a[i].lat+"')\">"+a[i].name+"</a><br>";
    }


function showPlace(lng, lat) {
    map.setCenter(new YMaps.GeoPoint(lng, lat), 10);
    map.openBalloon()
}

 

Балун не открывается. Что нужно передать в функцию showPlace(), чтобы открывался нужный балун?

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

а вам надо именно что открывать метку по lat\lng а не по номеру в массиве?

вам остается только написать

function showPlace(lng, lat) {

for (var i = 0; i < a.length; i++) {

 if(a[i].lat==lat && a[i].lng==lng){

   a[i].placeMark.openBallon();

}

}

и не забыть в этот самый a[i].placeMark сохранить этот самый placemark чтобы создаете.

Спасибо, так всё ОК!
Я думал, что Placemark можно найти по id на карте, а не сохранять в массиве.