Клуб API Карт

Обработка Плейсмарков

igorska1
18 сентября 2009, 15:37

Возник вот такой вопрос. Когда есть только точки на карты (геопоинты) то при клике на них открывается балун и все нормально. А вот когда на карте и поинты и линии то открывается событие линий. При том что пытаюсь при помощи слушателя прицепить событие клика балунам так:

 listener[j] =  YMaps.Events.observe(placemark[i],placemark[i].Events.Click, function () {
 alert ("Click");
 });


Полный код :

function setLayer(map,switchNetwork,id,idModell,idRoot,ip,mac,street,house,comment,down,location){
 
 
    style[j] = new YMaps.Style();
    style[j].lineStyle = new YMaps.LineStyle();
    style[j].lineStyle.strokeColor = colors[j];
    style[j].lineStyle.strokeWidth = '2';
  gCollection[j] = new YMaps.GeoObjectCollection();
  YMaps.Styles.add(colors[j], style[j]);
  var point  = [];
  var placemark = [];
  var string = '';
for (var i = 0; i<id.length; i++) {
  var x = getX(location[i].firstChild.nodeValue);
  var y = getY(location[i].firstChild.nodeValue);
  point[i] = new YMaps.GeoPoint(x,y);
  placemark[i] = new YMaps.Placemark(point[i]);
  string = ip[i].firstChild.nodeValue + '';
   placemark[i].setIconContent(string);
   placemark[i].description = ip[i].firstChild.nodeValue;
   gCollection[j].add(placemark[i]);
   addNewLines(map,location[i].firstChild.nodeValue,id[i].firstChild.nodeValue,idRoot[i].firstChild.nodeValue,gCollection[j],j,x,y,style[j]);
  listener[j] =  YMaps.Events.observe(placemark[i],placemark[i].Events.Click, function () {
 alert ("Click");
 });
 
}
  layer[j] = new YMaps.ObjectLayer();
    layer[j].add(gCollection[j]);

    layer[j].names = switchNetwork[0].value;
  

map.addLayer(layer[j]);

     j++;
  }


function addNewLines(map,location,id,root,gCollection,j,x,y,style){
   
    if (id != root && root != 0){
    $.ajax({
                type: "GET",
                url: "getLines.php?root="+escape(root),
                cache: false,
                dataType: "text",
                complete: function(text,status){
                  var coord = text.responseText;
                  var xRoot = getX(coord);
                  var yRoot = getY(coord);

                  
                  var lines = new YMaps.Line(new YMaps.GeoPoint(x,y),new YMaps.GeoPoint(xRoot,yRoot));
                  lines.setStyle(colors[j]);
                  gCollection.add(lines);
     }
});
  }
 

}





1 комментарий
Подписаться на комментарии к посту
Не могли бы Вы дать ссылку на страницу?

Вы используете версию API 1.0. Быть может Вам лучше использовать API 1.1? Там больше возможностей и функций.